
    Yhk             
       F   d dl Zd dlZd dlZd dlmZ d dlZd dlmZ d dl	Z	d dl
mZmZ d dlmZmZmZmZ d dlmc mZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZm 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,m-Z-m.Z.m/Z/ d dl,m0Z0 d dlm1Z1m2Z2m3Z3  G d d          Z4d9dZ5e-e1e2e.gZ6e3gZ7e6e7z   Z8 G d d          Z9d Z:d Z;d Z<d Z=d Z>d Z?d Z@e	jA        B                    de1f          e	jA        B                    d eC            dg          e	jA        B                    d eC            d g          e	jA        B                    d!d"g          e	jA        B                    d#ejD        jE        ejF        ejG        g          d$                                                             ZHd% ZId& ZJd' ZKd( ZL G d) d*          ZM G d+ d,          ZN G d- d.          ZO G d/ d0          ZP G d1 d2          ZQ G d3 d4          ZR G d5 d6e'          ZS G d7 d8          ZTdS ):    N)deepcopy)inf)assert_allcloseassert_equal)
strategiesgivenreproduce_failuresettings)special)stats)_kolmogorov_smirnov)kolmogn)qmc)distcontdistdiscrete)
_Domain_RealInterval
_Parameter_Parameterization_RealParameterContinuousDistributionShiftedScaledDistribution_fiinfo_generate_domain_supportMixture)StandardNormal_LogUniform_Gamma)DiscreteDistribution)NormalUniformBinomialc                      e Zd Zej                            d          Zd Zej	        
                    de                    ddd          ej         ej        g          d             Zej	        j         e ej        dd	
           ej                     ej                     ej                              ej	        j        d                                     Zej	        
                    d e ej        ddgd                              ej	        
                    dddg          d                         Zej	        
                    dej         ej        dddfdg          d             Zej	        j         e ej         ej        d           ej        d           ej          ee!j"                                       ej         ej        d           ej        d           ej          ee!j"                                       ej                     ej                              ej	        j        d                                     Z#d Z$d S )!Test_RealIntervall   @x	 c                     t          d          }d}t          j        t          |          5  |                    t
                     d d d            d S # 1 swxY w Y   d S )Nab	endpointsz0The endpoints of the distribution are defined...match)r   pytestraises	TypeErrorget_numerical_endpointsdict)selfdomainmessages      s/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/scipy/stats/tests/test_continuous.pytest_ivzTest_RealInterval.test_iv   s    444D]9G444 	1 	1**4000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   AAAx
            sizec                     t           j         t           j        }}t          ||fd          }t	          |                    |          ||k     ||k    z             d S )N)FTr*   	inclusive)npr   pir   r   contains)r2   r7   r'   r(   r3   s        r5   test_contains_simplez&Test_RealInterval.test_contains_simple&   sX     w1!Q=IIIV__Q''!a%AF);<<<<<    r;   r   
num_shapesmin_side)shapesinclusive_ainclusive_bdatac           	      |   |\  }}|\  }}}	t          dddd          }
t          dddd          }|                    t          j        t          j                    ||
                    }|                    t          j        t          j                    ||                    }||z
  }t          j        t          j        ||z
  |d          t          j        ||d          t          j        |||z   d          g          }t          d	||f
          }|	                    t          dt                                t          dt                                           |                    |t          ||	                    }|rdnd}|rdnd}t          d| d| d          }t          ||           d S )NFg     @   )	allow_nanallow_infinity	min_value	max_valuer:   g     @@)elementsr8   r&   r@   r'   r3   r(   z<=<z(a z	 x) & (x z b))r1   drawnpstarraysfloating_dtypesrB   concatenatelinspacer   define_parametersr   rD   evalr   )r2   rJ   rK   rL   rM   input_shapesresult_shapeshape_ashape_bshape_x
a_elements
b_elementsr'   r(   dr7   r3   resleft_comparisonright_comparisonrefs                        r5   test_containszTest_RealInterval.test_contains.   s    &,"l$0!' E%$(A7 7 7
E%$%6 6 6
IIdk$"6"8"8")J@ @ @ A AIIdk$"6"8"8")J@ @ @ A A ENBK!Q33K1b11K1Q3335 6 6 (3['AC C C  MOO!L!L!L!/MOO!L!L!L	N 	N 	N ooaQ00 #.6$$3#.744CHHH3CHHHIIS#rF   rA   TFr:   )repeatza,br   rO   r;   rO   c           	         d d f}t          ||          }t          j        |d|z  z
  dz  ||z
  dz  |dz  ||z   dz  |d|z  z   dz  g          }|                    |t	          ||                    }||z
  dz  ||z   dz  f}||                    t	          ||                    k    sJ |\  }	}
|d         r|	|k    n|	|k     }|d         r||
k    n||
k     }||z  }t          ||           d S )Nc                     | |z
  dz  S Nr:    r&   s     r5   <lambda>zDTest_RealInterval.test_contains_function_endpoints.<locals>.<lambda>`   s    1q5A+ rF   c                     | |z   dz  S rq   rr   r&   s     r5   rs   zDTest_RealInterval.test_contains_function_endpoints.<locals>.<lambda>`   s    QUaK rF   r@   r:   r&   r   rO   )r   rB   asarrayrD   r1   r0   r   )r2   rA   r'   r(   r*   r3   r7   rg   numerical_endpointsalphabeta
above_leftbelow_rightrj   s                 r5    test_contains_function_endpointsz2Test_RealInterval.test_contains_function_endpoints\   s,    .-/G/GH	iHHHJQqS!a!eQY!a!eQYQqS!LMMooaQ00 !A{QUaK8"f&D&DTAQR^^^&T&TTTTT)t#,Q<>UaZZUQY
#,Q<=a4iiQX;&S#rF   casez(-\infty, \pi])r'      TFz[a, 5)c                 ~    t          |d d         |dd                   }t          |          |d         k    sJ d S )Nr:   r<   r@   )r   str)r2   r|   r3   s      r5   test_strzTest_RealInterval.test_stro   sG    
 bqbT!A#YGGG6{{d1g%%%%%%rF   )rP   L)whitelist_categories)r'   r(   rK   rL   c                    t           j                            ||          }t           j                            ||          }|rdnd}|rdnd}t          ||f||f          }| | d| | }t	          |          |k    sJ d S )N[(])r@   , )r   symbolsgetr   r   )	r2   r'   r(   rK   rL   left_bracketright_bracketr3   rj   s	            r5   	test_str2zTest_RealInterval.test_str2w   s      O1%%O1%%)2sss*3!Q(3['AC C C6q66A6}666{{c!!!!!!rF   c                 f    t          d          }t          d          }|j        |j        usJ d S )Nrm   r)   )r   r   )r2   domain1domain2s      r5   test_symbols_gh22137z&Test_RealInterval.test_symbols_gh22137   s?      &111&111go555555rF   N)%__name__
__module____qualname__rB   randomdefault_rngrngr6   r-   markparametrizeuniformr   rC   rE   slowr   rX   mutually_broadcastable_shapesr   booleansrM   thread_unsaferk   listitproductr{   r   one_ofdecimals
characterssampled_fromr   r   r   r   rr   rF   r5   r$   r$      s       
)


0
0C1 1 1 [S3;;r2I;#F#F$&F7BE#3 4 4= =4 4= [
U4$4ANNN*z*,,*z*,,
!!# # # [& & 	# # &P [[$$zrz4-PQ/R/R/R*S*STT[UVV$455  65 UT" [V
&"%&78'&  & &	 & [
UZ
e,,,
3777
W_ 5 5668 8 Z
e,,,
3777
W_ 5 5668 8 +z*,,*z*,,
 
 
 [
" 
" 
 
 
"6 6 6 6 6rF   r$   c                    |                                  }|dk    r|                    t          j        d|dz
                      }|                     |          }|                    t          j        ||                    \  }}	|                     ||||          }
n$|                     |          }
t                      }	|                    t          j	        |	|                    }|
j
                            ||
j        ||d	          }t          j        ||	          }|                    t          j	        ||                    }|
j
                            ||
j        ||d	          }t          j        ||          }t          d
d          }t          d|          }|                    |||          }t          j        dd          5  t          j        |          }d d d            n# 1 swxY w Y   |
|||||	||fS )Nr   rO   )rS   rG   )r   proportionsi_parameterizationr   )rI   typical)parameter_valuesr   r   regionrm   TTprU   )r   r   ignoredivideinvalid)_num_parameterizationsrW   r   integers_num_parametersrX   r   _drawtuplebroadcastable_shapes	_variable_parametersrB   broadcast_shapesr   r   errstatelog)familyrM   r   r   rI   n_parameterizationsin_parametersrJ   r`   distx_shaper7   x_result_shapey_shapeyxy_result_shapep_domainp_varr   logps                        r5   draw_distribution_from_familyr      s}    !7799QIIj)!7J17LMMMNN--a00#yy.,8@B B B C  C ||F/0  2 2 |||$$ww ii1,;CE E E F FGGd6F(3Y 	 	P 	PA(,??Nii1.;CE E E F FGGd6F(3Y 	 	P 	PA)'>BBOV\22H3x000E

7
==A	Hh	7	7	7  vayy               Aq$noMMs   G::G>G>c                   |   e Zd Zej                            d           ed          ej                            de           e	 e
j                     e
j        d                    ej        j        d                                                             Zej                            d	          ej                            de          ej                            d
dddhdfdddhdfddhdfddhdfddhdfddhdfddhdfddhdfddhdfddhdfdh ddfdh ddfdh ddfd h ddfd!d"d#hd$fd%d"d#hd&fg           ed           e	 e
j                     e
j        d                    ej        j        d'                                                                         Zej        j        d(             Zej                            d)dd g          d*             Zej                            d)dd g          d+             Zd, Zd- Zd. Zej                            d)ddg          d/             ZdS )0TestDistributions<      )max_examplesr   r   rR   rM   seedc                    t           j                            |          }d}t          ||||          }|\  }}}	}
}}}}|                    t          j        ddd                    }t          j        dd          5  t          |           t          ||           t          |d|||           t          j        d|	          }t          |d|||           d d d            d S # 1 swxY w Y   d S )
Nffffff?皙?r   r   r   r   )min_dimsrI   max_sider   r   r   samplerO   rf   r   )rB   r   r   r   rW   rX   array_shapesr   check_supportcheck_moment_funcscheck_sample_shape_NaNsr   Halton)r2   r   rM   r   r   r   tmpr   r7   r   r   r   r`   r   r   sample_shapeqrngs                    r5   test_support_moments_samplez-TestDistributions.test_support_moments_sample   sk    i##D)) ++FD#{KKMPJaAt\>?yy!2A<>"@ "@ "@ A A [(;;; 	V 	V$t\222#D(L,PSTTT:,,,D#D(L,PTUUU	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	Vs   ?AC((C,/C,r8   zfunc, methods, argentropylog/exp
quadratureN
logentropymedianicdfmodeoptimizationmeancachevarianceskewnesskurtosispdfr7   logpdflogcdf>   
complementr   r   cdflogccdfccdfilogccdfr   	inversionr   iccdfr   c           	      f   |t           k    r|dk    rt          j        d           t          j                            |          }d}t          ||||          }	|	\  }
}}}}}}}|||d}t          j        ddd          5  |t          |
|d ||           n||v rt          |
|||         ||           d d d            n# 1 swxY w Y   |dk    r7t          |

                                dz  |
                                           t          j        ddd          5  t          |
t                    sc|d	k    r,d
h}t          |
d||||           t          |
d||||           n1|dk    r+dh}t          |
d||||           t          |
d||||           d d d            d S # 1 swxY w Y   d S )Nr   z'Mode is not unique; `method`s disagree.r   )r7   r   r   r   )r   r   overr   r:   r   r   FTr   addition)r!   r-   skiprB   r   r   r   r   check_dist_funcr   standard_deviationr   
isinstancer   
check_cdf2check_ccdf2)r2   r   rM   r   funcmethodsargr   r   r   r   r7   r   r   r   r`   r   r   argss                      r5   
test_funcszTestDistributions.test_funcs   s   0 WKABBBi##D)) ++FD#{KKMPJaAt\>?Q**[(JJJ 	P 	P{dD,HHHHdDI~wOOO		P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P :D3355q8$--//JJJ [(JJJ 		L 		Ld$=>> L5==+nGtUAq/7KKKtT1a'JJJJV^^)lGeQ?GLLLdAq/7KKK		L 		L 		L 		L 		L 		L 		L 		L 		L 		L 		L 		L 		L 		L 		L 		L 		L 		Ls%   4CCC A9F&&F*-F*c                     	 dd l m} n# t          $ r Y d S w xY wt          dd          }|                                }||                                k    sJ d S )Nr                 ?r&   )matplotlib.pyplotpyplotImportErrorr!   plotgca)r2   pltXaxs       r5   	test_plotzTestDistributions.test_plot  sx    	+++++++ 	 	 	FF	 bBVVXXSWWYYs   	 
method_namec                    t          j                    }d|_        t          j        ddg          }t          ||          }t          |d|z             } ||d          } ||d          } ||d          }t          |d	         |d	                    |d
         |d
         k    sJ t          |d
         |d
         |j                   d S )N-q=-C6?MbP?r   formulamethodcomplement_safer   rO   r   rtolr   r    tolrB   ru   getattrr   r   )	r2   r  r  r   r  ifuncr7   p1p2s	            r5   test_complement_safez&TestDistributions.test_complement_safe%  s    LNNJd|$$q+&&3{?++E!I&&&T!-...T!L)))RUBqE"""!u1~~~~1qt!%000000rF   c                    t          j                    }d|_        t          j        ddg          }t          ||          }t          |d|z             } ||d          } ||d          }t          |d         |d                    |d	         |d	         k    sJ t           ||d	                   |d	         |j        
           d S )Nr  r  r  r   r  r  r   rO   r   r   r"  )r2   r  r  r   r  r%  x1x2s           r5   test_icomplement_safez'TestDistributions.test_icomplement_safe3  s    LNNJd|$$q+&&3{?++U1.///U1\***RUBqE"""!u1~~~~RUQqT666666rF   c                 d   t          j                    }d|_        g d}g d}|                    ||d          }|                    ||d          }|                    ||d          }t	          ||           t          |||j                   t          j        g d	          }t          j        g d
          }|                    d          ||z
  z  }|                    ||d          }|                    ||d          }t	          |d           t          |||j                   d S )Nr  )r8      )r/  r.  r0  r8   r   r  subtraction_safesubtractionr   )#BǻO
㒻#B;O
;r3  )r4  r3  r6  r5  r5  r   )	r   r    r#  r   r   r   rB   ru   r   )r2   r  r7   r   p0r&  r'  s          r5   test_subtraction_safez'TestDistributions.test_subtraction_safe@  s<   LNN UU1aU--UU1a 2U33UU1aU..RBQU++++ J===>>J<<<== UU1XXqs^UU1a 2U33UU1aU..RBQU++++++rF   c                     G d dt           j                  } |g d          }t          j        d          5  |                    d          }|                    d	          }d d d            n# 1 swxY w Y   |                    d
          }ddg}t          j        ||                                                   sJ |d         |d         k    sJ t          ||         ||                    d S )Nc                        e Zd Z fdZ xZS )7TestDistributions.test_logentropy_safe.<locals>._Normalc                     t          j         t                      j        di |          }d|d<   t           j        |d<   |S )Nr   rr   )rB   ru   super_entropy_formular   )r2   paramsout	__class__s      r5   r?  zHTestDistributions.test_logentropy_safe.<locals>._Normal._entropy_formula[  sC    j!9!9!C!CF!C!CDDA&B
rF   )r   r   r   r?  __classcell__rB  s   @r5   _Normalr;  Z  s8                rF   rE  rO   r:   r;   sigmar   r   logexp_safer  logexpr   r   r=  rO   )r   r    rB   r   r   isinfallr   )r2   rE  r  res1res2rj   i_fls          r5   test_logentropy_safez&TestDistributions.test_logentropy_safeX  sQ   	 	 	 	 	el 	 	 	 G)))$$$[))) 	1 	1<<}<55D<<x<00D	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 ll,l//2wxT
##'')))))Aw$q'!!!! 	T$ZT+++++s   -A55A9<A9c                    t          j        g d          }g d}g d}t          j        d          5  |                    ||d          }|                    ||d	          }d d d            n# 1 swxY w Y   |                    ||d
          }ddg}t          j        ||                                                   sJ |d         |d         k    sJ t          ||         ||                    d S )NrF  rG  )rO   ,  )ir:   -  r   rI  rJ  r  rK  r   r   r=  rO   )r   r    rB   r   r   rL  rM  r   )r2   r  r7   r   rN  rO  rj   rP  s           r5   test_logcdf2_safez#TestDistributions.test_logcdf2_safem  sA   Lyyy)))NNNN[))) 	3 	388Aq877D88Aq822D	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 hhq!Lh112wxT
##'')))))Aw$q'!!!! 	T$ZT+++++s   1A22A69A6c                    t          j        d          }|dk    rddgnddg}t          ||          }t          j        d          5   ||d	
          } ||d
          }d d d            n# 1 swxY w Y    ||d
          }|d         |d         k    sJ |d         |d         k    sJ |d         |d         k    sJ |d         |d         k    sJ d S )Nr:   rG  r   rS  rO   rU  r   rI  rJ  r  rK  r   r   )r   r    r$  rB   r   )r2   r  r  r7   r  rN  rO  rj   s           r5   test_logexp_safez"TestDistributions.test_logexp_safe}  sP    Lq!!!$00T1IIsAhq+&&[))) 	, 	,4-000D4(+++D	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, d1\***Aw#a&    Aw$q'!!!!Aw$q'!!!!Aw#a&      s   	A00A47A4)r   r   r   r-   r   	fail_slowr
   r   familiesr   r   rM   r   r   r   r
  r  r(  r,  r8  rQ  rV  rX  rr   rF   r5   r   r      sZ       [2X2[Xx00
U
!!(;
(;a(H(H(HIII[V V  JI 10  
V" [2[Xx00[1(9l*CTJ+i-FM'&48%'7>%y$7)G9d;)G9d;)G9d;$yk37')c:')P)P)PRUV$&M&M&MsS(*Q*Q*QSVW%'N'N'NPST)L++FO&{(CSI ! !$ X2
U
!!(;
(;a(H(H(HIII[L L  JI %! ! 10 .LB [   []UFO<<1 1 =<1 []UFO<<
7 
7 =<
7, , ,0, , ,*, , ,  []Xy,ABB! ! CB! ! !rF   r   c                 `   ||z   }|dk    r| j         }dh}|                     d| d          r/t          |t          j                  s|                    d           |D ]L} ||||          }	t          j        t          |           |	j	                  }
t          |	j	        |           t          j        
                    |	j        | j                   |dk    rt          j        |	          sJ t          j        t          j        |	|
                             sJ t          |	|
          t          j                    |||d          } |||d          }t          | t$                    s)t          j        t          j        |	|                    rJ t          ||           Nd S )	Nr   inverse_transform__formular  )r  r   rr   *   )r   
_overridesr  r   	QMCEngineaddrB   broadcast_toget_valid_parametersshaper   testingdtype_dtypeisscalarrM  isfinitenanr   anyequal)r   fnamer   r`   r   
full_shapesample_methodr  r  rg   valid_parameterssample1sample2s                r5   r   r     s   ,J"#G*5***++ JsCM4R4R I ' 'mLSAAA?+?+E+E+.96 6SY
+++

	4;777
 ;s#####vbk#&6"78899999S**+RV444-VDDD-VDDD$ 455 	6 vbhsG4455555Wg&&&&/' 'rF   c                    |                                  \  }}t          | dd |           t          | dd |           |j        | j        k    sJ |j        | j        k    sJ |j        | j        k    sJ |j        | j        k    sJ d S )Nsupport)ru  check_nans_and_edgesre  _shaperg  rh  )r   r'   r(   s      r5   r   r     s    <<>>DAqy$222y$2227dk!!!!7dk!!!!7dk!!!!7dk!!!!!!rF   c                 <   |t                      n|f}|                                }d|v rGt          j        t                    5   t          | |          |ddi d d d            n# 1 swxY w Y    t          | |          | }t          | |||           ddi}|dv rddi}n|dv rddi}n|dv rd	d
i}|                     d| d          r|                    d           t          j
                            |j        |           |t                      k    rt          j        |          sJ |D ]} t          | |          |d|i}	d|v r=t          j
        j        t          j        |	          t          j        |          fi | nt          j
        j        |	|fi | t          j
                            |	j        |j                   t          j
                            |	j        |           |t                      k    rt          j        |	          sJ d S )Nr   r  atolV瞯<>   r   logmeanr   logskewness>   r   ư>>   r   r!  gH׊>r]  r^  r  r   )r   copyr-   r.   NotImplementedErrorr$  rv  r`  rb  rB   rf  r   re  ri  r   exprg  )
r   rn  r  r`   r  r	  rj   tol_overrider  rg   s
             r5   r  r    s    k5777vDllnnG' ].// 	8 	8 GD%  $7w777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 '$


%Cuc3/// E?L>>>	(		 ~	*		~*5***++ IJCI|444 uww{3 $ $"gdE""D888E>>J&rvc{{BF3KK 7 7)57 7 7 7 J&sC@@<@@@ 	
	39555

	<888577"";s#####$ $s   A((A,/A,c           	      
   |                                 }|r|                     d          r|                    d           |                     d          s|                     d          r|                    d           |                     d          s|                     d          r|                    d           n|                     d	          r|                    d           |                     d          s|                     d          r|                    d           |                     d          s|                     d          r|                    d           |                     |          |                     |          z
  }t          j                            |j        |           |t                      k    rt	          j	        |          sJ |D ]}t          | t                    rzd
}t          j        t          |          5  |r*t	          j        |                     |||                    n|                     |||          }	d d d            n# 1 swxY w Y   |r*t	          j        |                     |||                    n|                     |||          }	t          j                            |	|d           |r.t          j                            |	j        |dz   j                   n*t          j                            |	j        |j                   t          j                            |	j        |           |t                      k    rt	          j	        |	          sJ d S )N_logcdf2_formular  _logcdf_formula_logccdf_formular2  _cdf_formula_ccdf_formular   _cdf2_formulaUTwo argument cdf functions are currently only supported for continuous distributions.r+   r  +=ry                  )r~  r`  rb  r   rB   rf  r   re  r   ri  r  r   r-   r.   r  r  r   r   rg  
r   r   r7   r   r`   r  rj   r  r4   rg   s
             r5   r  r    s|    llnnG
 #??-.. 	#KK	"""??,-- 	'AS1T1T 	'KK&&&OON++ 	#???33	#KK	"""???++ 	#KK	"""??>** 	'dooo.N.N 	'KK&&&OO-.. 	#??#566	#KK	"""
((1++
#CJCI|444uww{3 $ $d011 	3G2'BBB ; ;CF :rvdkk!Qvk>>??? HHQ&H99 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;> 2rvdkk!Qvk66777HHQ&H11 	

""3%"888 	:J##CIb/?@@@@J##CIsy999

	<888577"";s######$ $s   AI((I,	/I,	c           	      h   |                                 }|                     d|rdnd d          r|                    d           |                     |          |                     |          z   }t
          j                            |j        |           |t                      k    rt          j
        |          sJ |D ]o}d}t          | t                    rxt          j        t          |          5  |r*t          j        |                     |||                    n|                     |||          }	d d d            n# 1 swxY w Y   |r*t          j        |                     |||                    n|                     |||          }	t
          j                            |	|d	
           t
          j                            |	j        |j                   t
          j                            |	j        |           |t                      k    rt          j
        |	          sJ qd S )Nr]  r    ccdf2_formular  r  r+   r  r  r  )r~  r`  rb  r   r   rB   rf  r   re  r   ri  r  r   r-   r.   r  r  r   r   rg  r  s
             r5   r  r  "  sK    llnnG>C/55R>>>?? I
((1++		!
$CJCI|444uww{3 $ $/d011 	2'BBB < <DG ;rvdll1al??@@@ IIa6I:: < < < < < < < < < < < < < < < <? 3rvdll1al77888IIa6I22 	

""3%"888

	39555

	<888577"";s#####$ $s   6AEE	E	c                    t          |           }|dv rt          dd          }n*|dv rt          t           dfd          }n| j        j        }t          | ||          }t          j        |g|R  ^}}|\  }}}	}
||z  }t          ||          t          j	                   t          ||
         t          j	                   | 
                                \  }}t          j        ||j                  }t          j        ||j                  }|	dk    |z  }|	dk    |z  }|dk    |z  }|dk    |z  }t          | t                    }|d	v rt          ||         t          j                    t          ||         t          j                    |st          j         nt          j        }t          ||| z           |           t          ||| z           |           n;|d
v rrt          ||         d           t          ||         d           |sdnt          j        }t          ||| z           |           t          ||| z           |           n|dv rh|sft          ||         t                      t          ||         d           t          ||         t                      t          ||         d           nY|dv r\|sZt          ||         d           t          ||         d           t          ||         d           t          ||         d           n|dv rh|sft          ||         d           t          ||         t                      t          ||         d           t          ||         t                      n|dv r\|sZt          ||         d           t          ||         d           t          ||         d           t          ||         d           n-|dv r|st          ||	dk             t          j	                   t          ||	dk             t          j	                   t          ||dk             ||dk                        t          ||dk             ||dk                        n|dv r|st          ||	dk             t          j	                   t          ||	dk             t          j	                   t          ||dk             ||dk                        t          ||dk             ||dk                        h d}t          | t                    r|                    ddh           ||vrt          | t                     r5t          j        | j        dk    | j        dk    z  | j        dk    z            s9t          j        |||dk    z                                                     sJ d S d S d S )N>   r   r   rm   r   r@   >   ilogcdfr   r   r=  rO   >   r   >   r   >   r   >   r   >   r   >   r   >   r   r  >   r   r   >   r   r{  ru  r   r|  r   r   )rd  r   r   r   r3   classify_argrB   broadcast_arraysr   rk  ru  rc  re  r  r   updater"   rl  nr   rj  rM  )r   rn  r  rg   rq  
arg_domainclassified_args	valid_argendpoint_argoutside_argnan_arg	all_validr'   r(   outside_arg_minusoutside_arg_plusendpoint_arg_minusendpoint_arg_plusis_discreterj   excludes                        r5   rv  rv  B  s1   +D11!!!"V|LLL

	)	)	)"sdAY,OOO

^*
"4j99O)+)<=M *O>M*O *O *O&4C1I|[',,I &&'000Wrv&&&<<>>DAq
39%%A
39%%A$*.>>#q(,<<&",0@@%*.>>T#788K 
S*+bfW555S)*RVG444(4rvggbfS+yj893???S*iZ78#>>>>	'		S*+Q///S)*A...".aaS+yj893???S*iZ78#>>>>	*		[	S*+cT222S)*A...S+,sd333S*+Q////	'		+	S*+Q///S)*A...S+,a000S*+Q////	+		k	S*+Q///S)*SD111S+,a000S*+cT2222	(		;	S*+Q///S)*A...S+,a000S*+Q////	%	%	%k	%S*+RV444S)*BF333S+,a0B.CDDDS*+Q|q/@-ABBBB	'	'	'	'S*+RV444S)*BF333S+,a0B.CDDDS*+Q|q/@-ABBBGGGG$,-- *x()))   h// !11 =1 MNN ! {3yLA,=>?@@DDFFFFF !  	GF ! rF   c                 	    dd fd	} fd}                                   t          d          D ]} ||ddd	                                |dd
          }t           dd |           |j        |k    sJ  ||dd|d	            ||dd| ||d          	            ||dd||dk    	            j        t          j        k    r ||dd|d	                                                                   dd                                dd           t          dd          D ]d}                     |dd
          } ||dd| ||d          p ||d          	                                |d            ||dd|           e                                   t          d          D ]} ||ddd	                                |dd
          }|j        |k    sJ  ||dd|d	            ||dd| ||d          	            ||dd||dk    	            j        t          j        k    r ||dd|d	            j        t          j        k    r|dk    s  ||dd| ||d          p|dk    	            ||d          s$                     |d            ||dd|            	                                }                                                        dd                                dd                                dd           t          dd          D ]}                     |dd
          } ||dd| ||d          ot          j        |dk               	                                |d            ||dd|t          j        |dk               	                                ddd
          }                                   t          d          D ]} ||ddd	                                |dd
          ||dz  z  z  }|j        |k    sJ  ||dd| ||d          	           t           t                    r5t          j         j        dk     j        dk    z   j        dk    z            s ||dd||dk    	            ||dd|           t           t                     rd S d S )Ng&.>Tc                 (   |rD                     | ||          }t          ||d| z  z             |j        |j        k    sJ d S t          j        t
                    5                       | ||           d d d            d S # 1 swxY w Y   d S )Nr  r8   r  )momentr   re  r-   r.   r  )orderkindr  rj   successrg   ry  r   s         r5   checkz!check_moment_funcs.<locals>.check  s     	8++eT&+99CC4E	>::::9	))))))233 8 8E47778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8s   !BBBc           	          d| d}                     |          }|sdS t          |          }t          |dt          t          d                              }| |v S )N_moment_r^  Forders   )r`  r$  setrange)r  r  formula_name	overridesr  r  r   s         r5   has_formulaz'check_moment_funcs.<locals>.has_formula  sg    0$000OOL11	 	5$--(CaMM::rF   r  rawr   F)r  r   r  r  r  generalr   quadrature_icdfcentralrO   r:   	transformstandardizedr}   r;   	normalize)NNT)reset_cacher  r  rv  re  rB  r   r    r!   r   rB   rl  r  r"   r  r   r   )	r   r`   r  r  r   rj   r   varry  s	   `       @r5   r   r     s<    D8 8 8 8 8 8 8     	 1XX 	B 	Ba////kk!U<k88T8T3777yL((((awT2222a	3Au0E0EFFFFa	3a9999>U\))E!U-sDAAAA 	 	KK9KK91a[[ * *kk!U<k88aS!k!Y//Q;;q.3Q3Q	S 	S 	S 	SAy!!!aS)))) 1XX 2 2aGU3333kk!Y|k<<yL((((aGS$7777aIsKK94M4MNNNNaIsAF;;;;>U\))E!Y 13EEEE%-//AFF E!YS%+a//;AF= = = ={1e$$ 	2KK5!!!E!YS111}}H 	KK>"""KK>"""KK>"""1a[[ Q Qkk!Y|k<<aK!k!^44RRVHPQM=R=R9R	T 	T 	T 	TA~&&&aK"&Q:O:O6OPPPPP ++a<+
8
8C1XX 3 3a%8888kk!Y|k<<sq1u~MyL((((aC!k!^44	6 	6 	6 	6 4**	EFDFaKDFaK8DFaKHII	E E!^YQ!VDDDDac2222$122  	 rF   r   r   )r:   r;   
dist_shape)r<   rO   rn  r   rng_typec                 2   t           j                            d          }|                                 }|r|dk    rt	          j        d           |                     ||          }d}|f|z   }	|	|z   }
|dk    r|j        }|t           j        j        k    r |d|          } ||	|          }|j	        |
k    sJ t          ||d	          }t          |j	        d         |d
          }d}|j        }t          j        ||k               }|||z  k     sJ d S )Nl   MLy r   z3Distribution can't have a shape without parameters.i   r   rO   r   r   )axisF)r   g{Gz?)rB   r   r   r   r-   r   r   r   	Generatorre  r   r   r>   sum)r   r  r   rn  r  r   num_parametersr   r  sample_sizesample_array_shaperp  r7   	statisticpvaluep_thresholdnum_pvaluesnum_small_pvaluess                     r5   test_sample_against_cdfr     sG    )


0
0C++--N Kn))IJJJ<<
C((DA$.K$z129&&&h%%%ks+++A7((((( $D!!444IQWQZ666FK+Kv344{[8888888rF   c                    | j         }i }| j        D ]}|                    |j                   t	          j        | j        t                    }|                                D ]\  }}||vr
||         }|j	        
                    |          \  }}	|j	        j        \  }
}|
r||k    n||k     }||r||	k    n||	k     z  }t          ||j	                            ||                     ||z  }t          | | j                   |S )Nrg  r   )r   _parameterizationsr  
parametersrB   onesrw  boolitemsr3   r0   rA   r   rD   _invalid)r   r   r  parameterizationr  namevalue	parameterr'   r(   
a_included
b_includedvalids                r5   rd  rd  C  sR    'J 3 7 7*566664000I'--//  ez!!t$	
 77- 8 / /1!*!1!;
J *9eE	:%1**:UI,55$4 6 6 6 	7 	7 	7 	U		 )T]+++rF   c                    |t          j        | j        t                    }t          j        | j        t                    }t          j        | j        t                    }t          j        | j        t                    }||||fS |                    | j                  \  }}t          j        |||          \  }}}|j        \  }	}
|	r||k    n||k     }||
r||k    n||k     z  }t          j        |j	        t                    }d|||k    <   d|||k    <   t          j        |j	        t                    }d||	r||k     n||k    <   d||
r||k     n||k    <   t          j        |          }||||fS )Nr  r  r=  rO   )rB   r  rw  r  zerosr0   r   r  rA   re  intisnan)r   r  r  
valid_argsendpoint_argsoutside_argsnan_argsr'   r(   r  r  insideonoutsiderk  s                  r5   r  r  j  s   
{WT[555
D999x48888DKt444=,@@--) . + +DAq #Aq#..IAq#'1J
%2a3hh1s7F
J3saxxC!G3F	!'	%	%	%BBqCxLBqCxLhqwc***G57G1S1WW256G1QWWc2
(3--C2w##rF   c                      G d dt                     } d}t          j        t          |          5   | d           d d d            n# 1 swxY w Y   d}t          j        t          |          5   | t	          j        g                      d d d            n# 1 swxY w Y   t          j        t          |          5   | g d	           d d d            n# 1 swxY w Y   t          j        t          |          5   | t          j                   d d d            n# 1 swxY w Y   t          j        t          |          5   | d
           d d d            n# 1 swxY w Y   d}t          j        t          |          5   |                                 d
           d d d            n# 1 swxY w Y   t          j        t          |          5   |                                 t          j                   d d d            n# 1 swxY w Y   d}t          j        t          |          5   |                                 dd           d d d            n# 1 swxY w Y    G d dt                     }d}t          j        t          |          5   |d           d d d            n# 1 swxY w Y   d}t          j        t          |          5   |             d d d            n# 1 swxY w Y   d}t          j        t          |          5   |ddgg d	           d d d            n# 1 swxY w Y   d}t          j        t          |          5   |g d	g d	          }|	                    ddg           d d d            n# 1 swxY w Y   d}t          j        t          |          5   |dt                      gddg           d d d            n# 1 swxY w Y   d}t          j        t          |          5   |g d	g d	          }|                    d           d d d            d S # 1 swxY w Y   d S )Nc                   8    e Zd Z ed e                      ZdS )#test_input_validation.<locals>.Testr7   rU   N)r   r   r   r   r   r   rr   rF   r5   Testr    s(        "N3}}???			rF   r  z`The `Test` distribution family does not accept parameters, but parameters `{'a'}` were provided.r+   rO   r'   zAAttribute `tol` of `Test` must be a positive float, if specified.r#  rF  r=  zEArgument `order` of `Test.moment` must be a finite, positive integer.z2Argument `kind` of `Test.moment` must be one of...r:   coconutr  c                       e Zd Z ed e                      Z ed e                      Z eee          gZ ed e                      Z	dS )$test_input_validation.<locals>.Test2crU   rf   r7   N)
r   r   r   r   r   _p1_p2r   r  r   rr   rF   r5   Test2r    sr        nS999nS999//S99:"N3}}???			rF   r  zkThe provided parameters `{a}` do not match a supported parameterization of the `Test2` distribution family.zLThe `Test2` distribution family requires parameters, but none were provided.zjThe parameters `{c, d}` provided to the `Test2` distribution family cannot be broadcast to the same shape.)r  rf   zmThe argument provided to `Test2.pdf` cannot be be broadcast to the same shape as the distribution parameters.z$Parameter `c` must be of real dtype.z<Parameter `convention` of `Test2.kurtosis` must be one of...
convention)r   r-   r.   
ValueErrorrB   ru   rk  r  r   r   r/   objectr   )r  r4   r  r   s       r5   test_input_validationr    s   @ @ @ @ @% @ @ @7G	z	1	1	1  q               RG	z	1	1	1 ! !B    ! ! ! ! ! ! ! ! ! ! ! ! ! ! !	z	1	1	1                	z	1	1	1                	z	1	1	1                +G	z	1	1	1  b              	z	1	1	1  bf               CG	z	1	1	1 ) )ai((() ) ) ) ) ) ) ) ) ) ) ) ) ) )@ @ @ @ @& @ @ @FG	z	1	1	1  



               G	z	1	1	1                LG	z	1	1	1 % %A)))$$$$% % % % % % % % % % % % % % %?G	z	1	1	1  uyyyIII...!Q               5G	y	0	0	0 ) )FHH!Q(((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) MG	z	1	1	1 , ,uyyyIII...+++, , , , , , , , , , , , , , , , , ,s   A

AA2BB!$B!CC"%C"D''D+.D+E&&E*-E*F88F<?F<(HHH: I&&I*-I*!J::J>J>"K99K= K=!L??MM')NN #N O..O25O2(QQQc                  z   t          ddgd          } t          di | }t          |          }t          j        t          j        |                    }|                                |                                |                                }}}t          j        ||k              sJ t          j        ||k              sJ |                    d          |                    d          |                    d          }}}t          j        ||k              sJ t          j        ||k              sJ d S )Nr=  r:   r8   r&   r_  r   rr   )	r1   r!   r   pickleloadsdumpsr   rB   rM  )kwargsdist1dist2dist3rN  rO  res3s          r5   test_rng_deepcopy_pickler    s   RGr"""FfEUOOELe,,--E||~~u||~~u||~~$D6$$,6$$,|||++U\\b\-A-A5<<TV<CWCW$D6$$,6$$,rF   c                   &    e Zd Zd Zd Zd Zd ZdS )TestAttributesc                 $   t          d          }d}t          j        t          |          5  |                    d           d d d            n# 1 swxY w Y   |                                }t          j        t          |          5  |                    d           d d d            n# 1 swxY w Y   d |_        t          j        t          |          5  |                    d           d d d            n# 1 swxY w Y   |                                }|                    d          }t          ||           |                    d          }|                    d          }t          ||           t          j        ||k              rJ d|_        |                    d          }|                    d          }t          ||           t          j        ||k              rJ |	                                 t          j        t          |          5  |                    d           d d d            n# 1 swxY w Y   d	}t          j        t          |          5  d
|_        d d d            d S # 1 swxY w Y   d S )Nno_cache)cache_policyzD`StandardNormal` does not provide an accurate implementation of the r+   r   r  r   r  z/Attribute `cache_policy` of `StandardNormal`...r   )r   r-   r.   r  r   r  r   rB   rM  r  r  )r2   r   r4   r   cached_meanquadrature_means         r5   test_cache_policyz TestAttributes.test_cache_policy  s   :666X].g>>> 	& 	&IIWI%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&yy{{].g>>> 	& 	&IIWI%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& !].g>>> 	& 	&IIWI%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&yy{{iiwi//[$''' ))<)88iiwi//[/2226$/122222 'yy	y**iiwi//[/2226$/122222].g>>> 	& 	&IIWI%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& D]:W555 	* 	* )D	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*sY   AAAB..B25B2C>>DD%III0JJ	J	c                    d}t          j                    }d}t          j        t          |          5  d|_        d d d            n# 1 swxY w Y   t          j        t          |          5  d|_        d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        |_        d d d            n# 1 swxY w Y   t          j        d          }t          j        d          }|                    |          }|                    |d	
          }|                    |d	
          }t          |||j                   t          |||j                   t          ||z
            t          ||z
            k    sJ d}	|j        |j        c|_        |_        |                    |	          }|                    |	d
          }|                    |	d
          }t          |||j                   t          |||j                   t          ||z
            t          ||z
            k    sJ d S )N      @z+Attribute `tol` of `StandardNormal` must...r+         )r   r   r  r  r   r  r   gGz?r   )r   r    r-   r.   r  r#  rB   rk  r   r   absr   )
r2   r7   r  r4   X1X2rj   rN  rO  r   s
             r5   test_tolzTestAttributes.test_tol  s   LNN?]:W555 	 	AE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:W555 	 	AE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:W555 	 	FAE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 \d###\e$$$eeAhhvvav--vvav--c////c////4#:TCZ0000ffQiiwwqw--wwqw--c////c////4#:TCZ000000s5   AAA-BBB'CC	C	c                    t          dd          }|                    d          dk    sJ d|_        |                    t          j        d                    dk    sJ t          j        d          t          j        d          }}t          ||d	          }|                    t          j        d                    d
k    sJ  G d dt                     } |||d	          }|                                dk    sJ |                    dd
          dk    sJ d}t          j        t          |          5  d|_        d d d            d S # 1 swxY w Y   d S )Nr   rO   r&   r:   skip_all       @r  r  )r'   r(   validation_policyr=  c                       e Zd Zd Zd ZdS )0TestAttributes.test_iv_policy.<locals>.MyUniformc                     dS N	incorrectrr   )r2   r	  r  s      r5   r?  zATestAttributes.test_iv_policy.<locals>.MyUniform._entropy_formula.      "{rF   c                     dS r  rr   )r2   r  r@  s      r5   _moment_raw_formulazDTestAttributes.test_iv_policy.<locals>.MyUniform._moment_raw_formula1  r  rF   N)r   r   r   r?  r  rr   rF   r5   	MyUniformr  -  s2        # # ## # # # #rF   r  r  r  )r  r  z/Attribute `validation_policy` of `MyUniform`...r+   r   )
r!   r   r  rB   ru   r   r  r-   r.   r  )r2   r  r'   r(   r  r4   s         r5   test_iv_policyzTestAttributes.test_iv_policy   s   a1uuQxx1}}}}(uuRZ^^$$)))) z"~~rz"~~1a1
;;;uuRZ^^$$****	# 	# 	# 	# 	# 	# 	# 	# IQ*===yy{{k)))) xxU"x--<<<< D]:W555 	, 	,"+A	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s   =EEEc                    t          j        dd          }t          j        dgd          }|j        dk    sJ |j        dk    sJ |j        d         dk    sJ |j        d         dk    sJ t	          j        t                    5  d|_        d d d            n# 1 swxY w Y   d|j        d<   |j        d         dk    sJ d S )NrO   r:   murH  r;   r   r8   )r   r    r#  rH  r-   r.   AttributeError)r2   r  Ys      r5   test_shapeszTestAttributes.test_shapes?  s   LAQ'''LQCq))) tqyyyyw!||||tAw!||||wqzQ ]>** 	 	AD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 QtAw!||||||s   BB"BN)r   r   r   r  r  r   r&  rr   rF   r5   r  r    sQ        &* &* &*P1 1 1<, , ,>    rF   r  c                   J   e Zd Zej                            d eeez                       d             Z	d Z
ej        j        ej                            d          ej                            dddd ej        g d	          g          d
                                     Zej        j        ej                            dd ej        g d          g          ej                            dd ej        g d          g          d                                     Zd Zd ZdS )TestMakeDistributionzi, distdatac           
         |d         }h d}t          t          j                            dd                    s||v rt	          j        d           |dv rd S ddd}d	d
h}h d}h d}h d}	h ddhdhd}
ddh}t          t          |          }|j        r;t          t          |j                            d          |d                             ni }t          j                            d          }t          j        |          } |d*i |} |d*i |}|                    d|          }|                    |          }|                    |d          }d}t          j        dd          5  |                    d          \  }}}}t'          |                                |                                           ||vr6t'          |                                |                                |           t-          |t          j                  rHt'          t          j        |                                          |                                |           t'          |                                |                                |           t'          |                                |||           t'          |                                |||           ||vr%t'          |                                |||           ||vr't'          |                    d !          |||           t-          |t          j                  rqt'          |                     |          |                     |          |           t'          |!                    |          |!                    |          |           npt'          |"                    |          |"                    |          |           t'          |#                    |          |#                    |          |           t'          |$                    |          |$                    |          |           t'          |                    |          |                    |          |           ||	vr8t'          |%                    |          |&                    |          |           t'          |'                    |          |(                    |          |           |                                \  }}|)                    |          }|||dk    <   |*                    |          }|||dk    <   t'          |+                    |          ||           t'          |,                    |          ||           t[          d"          D ]U}||
                    |i           vr;t'          |.                    |d#$          |.                    |          ||           Vt[          d%d&          D ]J}||vrDt'          |.                    |d'$          |                    d|dz
                     ||           Kt-          |t          j                  r[d(}t'          |                    d|          |/                    dt          j                            |          )          |           d d d            d S # 1 swxY w Y   d S )+Nr   >   zipfargusksonekstwokappa4logserskellamexponpowgenexpongompertz	exponweib	johnsonsb	kstwobign	powernorm
betanbinomhalfgennormnorminvgausspowerlognormrecipinvgaussvonmises_linestudentized_rangeSCIPY_XSLOW0zSkipping as XSLOW>   vonmises	hypergeomlevy_stablepoisson_binomnchypergeom_fishernchypergeom_walleniusgh㈵>)r,  r-  r6  pearson3>   r,  r1  rF  >   chir,  r-  r1  invgammar5  rF  >   triangarcsine	trapezoid
skewcauchy>   levyrw   levy_l
foldcauchy
halfcauchyparetorI  r9   r1  r,  r   rO      s4XF r8   re  r   gHz>r  r   r   mvskr   )r!  ry  excessr  r}   r  r  r;   r<   r  l   1XS+- )r>   random_staterr   )0r  osenvironr   r-   r   r$  r   rJ   r1   zipsplitrB   r   r   make_distributionr   r   r   r   ru  r   r  rv_discreter  r   r   r   r   r   r   rv_continuousr   r   logpmfpmfr   r   logsfr   sfppfisfr   r   r  r  rvs) r2   r   distdatadistnamer   custom_tolerancesskip_entropyskip_skewnessskip_kurtosisskip_logccdfskip_rawskip_standardizedr   r@  r   CustomDistributionr  r%  r7   r   r!  ry  mvskr'   r]  ref_ppfref_isfr  r   s                                    r5   test_rv_genericz$TestMakeDistribution.test_rv_genericT  s   A;; ; ;
 2:>>-5566 	-8t;K;KK+,,, 
 
 
 F '+T::#Z0FFF2 2 2 HGGNNN z"|% % (1uh''DHKWc$+++D118A;??@@@UWi##$455"4T::((((DNN6NNHH23H''EE!HH $$Xt44[(;;; 7	+ 7	+JAq!QAIIKK555|++		QYY[[tDDDD!U.// P  q||~~ 6 6		$OOOOAHHJJ

>>>>AFFHHad>>>>AJJLL!$TBBBB},,

adFFFF},,

h
 ? ?%)6 6 6 6$ 344 ?QXXa[[tDDDDa!%%((>>>>>QXXa[[tDDDDa!%%((>>>>AHHQKK!4@@@@AEE!HHaeeAhhT::::|++		!aggajjtDDDDAFF1IIqttAwwT:::: 99;;DAqeeAhhGGAFOeeAhhGGAFOAFF1IIwT::::AGGAJJd;;;;q K K8<<r#:#:::#AHHUH$?$?$%HHUOO$TK K K Kq! T T#444#AHHUH$H$H$%GGF57O$<$<4dT T T T$ 344 + 'rt < < !23593H3H3N3N !& !P !P%)+ + + +i7	+ 7	+ 7	+ 7	+ 7	+ 7	+ 7	+ 7	+ 7	+ 7	+ 7	+ 7	+ 7	+ 7	+ 7	+ 7	+ 7	+ 7	+s   1U0[..[25[2c           	      T   t           j                            d          } G d d          }t          j         |                      } |t          j        d          t          j        d                    }t          j        t          dd                    }|                    d	|
          }|                    |          }t          |
                                |
                                           t          |                                |                                           t          |                                |                                           t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     dD ]N}t)          d          D ]<}	t          |                    |	|          |                    |	|                     =O|                    d	dd          }
|                    d	dd          }t          |
|           t          j        |
|k              rJ t          |                    d          |                    d                     |                    d          |                    d          k    rJ d S )NrS  c                   j    e Zd Zed             Zed             Zed             Zd ZdddZd
d	Z	dS )6TestMakeDistribution.test_custom.<locals>.MyLogUniformc                     dS Nz1.16.0rr   r2   s    r5   __make_distribution_version__zTTestMakeDistribution.test_custom.<locals>.MyLogUniform.__make_distribution_version__      xrF   c                 H    dt           j        fdddt           j        fdddS )Nr   FFr@   r'   r&   rB   r   r|  s    r5   r  zATestMakeDistribution.test_custom.<locals>.MyLogUniform.parameters  s6    ,-rv;^TT,/=~VVX X XrF   c                 
    ddiS )Nr*   r&   rr   r|  s    r5   ru  z>TestMakeDistribution.test_custom.<locals>.MyLogUniform.support  s    #Z00rF   c                 `    d|t          j        |          t          j        |          z
  z  z  S )NrO   rB   r   )r2   r7   r'   r(   s       r5   r   z:TestMakeDistribution.test_custom.<locals>.MyLogUniform.pdf  s'    ARVAYY!6788rF   Nr   c                    |                     |          }t          j        t          j        |          |t          j        |          t          j        |          z
  z  z             S )Nr=   )r   rB   r  r   )r2   re  r'   r(   r   r   s         r5   r   z=TestMakeDistribution.test_custom.<locals>.MyLogUniform.sample  sL    KKUK++vbfQii!rvayy26!99/D*EEFFFrF   r  c                b    |dk    r&|dk    r"||z
  t          j        ||z            z  dz   S d S d S )NrO   r  g|=r  )r2   r  r  r'   r(   s        r5   r  z=TestMakeDistribution.test_custom.<locals>.MyLogUniform.moment  s@    A::$%-- ERVAaC[[0588 :--rF   )r  )
r   r   r   propertyr}  r  ru  r   r   r  rr   rF   r5   MyLogUniformry    s            X  X X XX 1 1 X19 9 9 26 G G G G G9 9 9 9 9 9rF   r  rO   r;   r&   r  r  r8   rT  r  r  r  r}   r  r   r  )re  r   r  r\  r  r   )rB   r   r   r   r\  r  r!   r   r   r   ru  r   r   r   r   r   r   r   r   r   r  r  rM  r   )r2   r   r  
LogUniformr  r%  r7   r   r  r  sample_formulasample_inverses               r5   test_customz TestMakeDistribution.test_custom  s\   i##$455	9 	9 	9 	9 	9 	9 	9 	96 ,\\^^<<
JbfQii000Igb)))**HH23H''EE!HH		QYY[[111		QYY[[111

AHHJJ///QXXa[[111a!%%((+++QXXa[[111a!%%((+++		!aiill333q		166!99---q		166!99---

AGGAJJ///6 	< 	<Dq < <T : : !T : :< < < <<
 )DD:MNN7776.N:;;;;;i00!&&&2M2MNNN666++qvv\v/J/JJJJJJJrF   zignore::RuntimeWarningr  r=  r   rO   )g r  r  r  g @c                    t           j                            d          } G d d          }t          j         |                      }t          j        t          j                  } ||dd          } ||          }|                    d|	          }|                    |          }	t          |	                                |	                                           t          |
                                |
                                d
           t          |                                |                                           t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |	          |                    |	                     t          |                    |	          |                    |	                     d S )NrS  c                   \    e Zd Zed             Zed             Zed             Zd Zd ZdS )GTestMakeDistribution.test_custom_variable_support.<locals>.MyGenExtremec                     dS r{  rr   r|  s    r5   r}  zeTestMakeDistribution.test_custom_variable_support.<locals>.MyGenExtreme.__make_distribution_version__  r~  rF   c                     t           j         t           j        fddt           j         t           j        fdddt           j        fdddS )Nr  r@   r   r  r#  rH  r  r|  s    r5   r  zRTestMakeDistribution.test_custom_variable_support.<locals>.MyGenExtreme.parameters  sP     *,'8~VV*,&"&(9WW,-rv;^TT  rF   c                     d }d }||fddS )Nc                     t          j        | ||          \  } }}t          j        |           }t           j         || dk    <   || dk              || dk              | | dk              z  z   || dk     <   |d         S Nr   rr   rB   r  
empty_liker   r  r#  rH  results       r5   leftz]TestMakeDistribution.test_custom_variable_support.<locals>.MyGenExtreme.support.<locals>.left  su    #%#6q"e#D#DLAr5]1--F&(fWF16N$&q1uIa!eqQx0G$GF1q5M!":%rF   c                     t          j        | ||          \  } }}t          j        |           }t           j        || dk    <   || dk             || dk             | | dk             z  z   || dk    <   |d         S r  r  r  s       r5   rightz^TestMakeDistribution.test_custom_variable_support.<locals>.MyGenExtreme.support.<locals>.right  ss    #%#6q"e#D#DLAr5]1--F%'VF16N$&q1uIa!eqQx0G$GF1q5M!":%rF   r  r@   rr   )r2   r  r  s      r5   ru  zOTestMakeDistribution.test_custom_variable_support.<locals>.MyGenExtreme.support  s4    & & && & & '+E]PPPrF   c                   t          j        ||||          \  }}}}t          j        |          }|dk    }t          j        ||         ||         z
   ||         z            ||<   d||          ||          ||          z
  z  ||          z  z
  d||          z  z  || <   d|z  |d|z
  z  z  t          j        |           z  }|d         S Nr   rO   rr   rB   r  r  r  )r2   r7   r  r#  rH  tmaskr  s           r5   r   zKTestMakeDistribution.test_custom_variable_support.<locals>.MyGenExtreme.pdf   s    "$"5aB"F"F1b%M!$$Q&1T7RX#5!6uT{!BCC$D51dU8b$i#78uEEahJ 4% 51q1u:-bfaRjj8bz!rF   c                z   t          j        ||||          \  }}}}t          j        |          }|dk    }t          j        ||         ||         z
   ||         z            ||<   d||          ||          ||          z
  z  ||          z  z
  d||          z  z  || <   t          j        |           d         S r  r  )r2   r7   r  r#  rH  r  r  s          r5   r   zKTestMakeDistribution.test_custom_variable_support.<locals>.MyGenExtreme.cdf+  s    "$"5aB"F"F1b%M!$$Q&1T7RX#5!6uT{!BCC$D51dU8b$i#78uEEahJ 4% vqbzz"~%rF   N)	r   r   r   r  r}  r  ru  r   r   rr   rF   r5   MyGenExtremer    s            X    X Q Q XQ"	" 	" 	"& & & & &rF   r  r   rO   r  r  r8   rT  gh㈵>r   )rB   r   r   r   r\  
genextremer   r   r   ru  r   r   r   r   r   r   r   r   r   )
r2   r  r   r  GenExtreme1GenExtreme2r  r  r7   r   s
             r5   test_custom_variable_supportz1TestMakeDistribution.test_custom_variable_support  sE    i##$4552	& 2	& 2	& 2	& 2	& 2	& 2	& 2	&h -llnn==-e.>??[1!,,,[1IIBCI((FF1II

bjjll333

bjjll>>>>		RYY[[111		!biill333q		266!99---		!biill333q		266!99---

1rzz!}}555

BGGAJJ///

BGGAJJ///RXXa[[11111rF   r'         ?)r  r  r  g      @g       @r(   c                 j   t           j                            d          } G d d          }t          j        t          j                  }t          j         |                      }|||z   z  }||z   } |||          } |||          }	 |||          }
|
                    d|          }|
                    |          }t          |	                                |
	                                           t          |
                                |

                                           t          |                    |          |
                    |                     t          |                    |          |
                    |                     t          |                    |          |
                    |                     t          |                    |          |
                    |                     t          |                    |          |
                    |                     t          |		                                |
	                                           t          |	
                                |

                                           t          |	                    |          |
                    |                     t          |	                    |          |
                    |                     t          |	                    |          |
                    |                     t          |	                    |          |
                    |                     t          |	                    |          |
                    |                     d S )NrS  c                   d    e Zd Zed             Zed             ZddZed             Zd Zd Z	dS )	KTestMakeDistribution.test_custom_multiple_parameterizations.<locals>.MyBetac                     dS r{  rr   r|  s    r5   r}  ziTestMakeDistribution.test_custom_multiple_parameterizations.<locals>.MyBeta.__make_distribution_version__P  r~  rF   c                 ^    dt           j        fdt           j        fdddt           j        fdfS )Nr   r&   rm   r#  nur  r|  s    r5   r  zVTestMakeDistribution.test_custom_multiple_parameterizations.<locals>.MyBeta.parametersT  s6     bf+QK88!!RV55 rF   Nc                 J    ||||||z   }||z  }n
||z  }||z
  }||||dS )N)r'   r(   r#  r  rr   )r2   r'   r(   r#  r  s        r5   process_parametersz^TestMakeDistribution.test_custom_multiple_parameterizations.<locals>.MyBeta.process_parameters[  sK    =Q]rzbjQBRBBRAQAQb;;;rF   c                 
    ddiS )Nr*   rm   rr   r|  s    r5   ru  zSTestMakeDistribution.test_custom_multiple_parameterizations.<locals>.MyBeta.supportd  s    #V,,rF   c                 D    t           j                            |||          S N)r   _ufuncs	_beta_pdfr2   r7   r'   r(   r#  r  s         r5   r   zOTestMakeDistribution.test_custom_multiple_parameterizations.<locals>.MyBeta.pdfh  s    00Aq999rF   c                 .    t          j        |||          S r  )r   betaincr  s         r5   r   zOTestMakeDistribution.test_custom_multiple_parameterizations.<locals>.MyBeta.cdfk  s    q!Q///rF   )NNNN)
r   r   r   r  r}  r  r  ru  r   r   rr   rF   r5   MyBetar  O  s            X    X< < < < - - X-: : :0 0 0 0 0rF   r  r&   r  r8   rT  )rB   r   r   r   r\  rx   r   r   r   ru  r   r   r   r   r   )r2   r'   r(   r   r  Betar#  r  r  r%  Zr7   r   s                r5   &test_custom_multiple_parameterizationsz;TestMakeDistribution.test_custom_multiple_parameterizationsJ  s    i##$455	0 	0 	0 	0 	0 	0 	0 	0> &uz22(22!a%[UFQ!FbR   D1NNNHH23H''EE!HH		QYY[[111

AHHJJ///a!%%((+++a!%%((+++q		166!99---q		166!99---

AGGAJJ///		QYY[[111

AHHJJ///a!%%((+++a!%%((+++q		166!99---q		166!99---

AGGAJJ/////rF   c                    d}t          j        t          |          5  t          j        t          j                   d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j        t          j                   d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j        t                                 d d d            d S # 1 swxY w Y   d S )Nz`levy_stable` is not supported.r+   z`vonmises` is not supported.z&The argument must be an instance of...)	r-   r.   r  r   r\  rC  rA  r  r  r2   r4   s     r5   r  z*TestMakeDistribution.test_input_validation  s   3].g>>> 	7 	7#E$5666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 1].g>>> 	4 	4#EN333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 ;]:W555 	. 	.#FHH---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s5   A		AA1BB #B !C22C69C6c                 J   ddl m} |                                D ]}t          t          |          sJ t	          j        t          j                  }t           |d                    dk    sJ t          j	        dk    rt           |d                    dk    sJ d|j        v sJ t	          j        t          j                  }t           |d	                    d
k    sJ t          j	        dk    rt           |d	                    dk    sJ d|j        v sJ d S )Nr   )_distribution_namesr:   r  zGamma(a=2.0)2zGamma(a=np.float64(2.0))Gamma)rx   zHalfGeneralizedNormal(beta=2.0)z+HalfGeneralizedNormal(beta=np.float64(2.0))HalfGeneralizedNormal)(scipy.stats._distribution_infrastructurer  keyshasattrr   r\  gammar   rB   __version__repr__doc__r9  )r2   r  r   s      r5   test_repr_str_docsz'TestMakeDistribution.test_repr_str_docs  s>   PPPPPP',,.. 	( 	(D5$''''''&u{3344!999~~////>S  q			??&@@@@@$,&&&&&u'89944Q<<<  $EEEEE>S  !%%)VVVVV&$,666666rF   N)r   r   r   r-   r   r   	enumerater   r   rv  r  r   filterwarningsrB   ru   r  r  r  r  rr   rF   r5   r(  r(  S  s       []IIh6M,N,NOOd+ d+ POd+L<K <K <K@ [[ 899[S2q!ZRZ8P8P8P-Q-Q"RSSJ2 J2 TS :9 J2X [[S3

3L3L3L(M(M"NOO[S3

3L3L3L(M(M"NOO<0 <0 PO PO <0|. . .7 7 7 7 7rF   r(  c                      e Zd Zd Zd Zej                            d           e e	j
                     e	j        d                    ej        j        d                                     Zej                            d          ej                            d	d
dg          d                         Zej                            d          ej                            dg d          ej                            d          d                                     Zej                            d          d             Zd Zd Zd Zd Zd ZdS )TestTransformsc                     t          j        dd          }d}t          j        t          |          5  t          j        |           d d d            d S # 1 swxY w Y   d S )Nr8   r  )r  r   z@Transformations are currently only supported for continuous RVs.r+   )r   r"   r-   r.   r  r  )r2   r  r4   s      r5    test_ContinuousDistribution_onlyz/TestTransforms.test_ContinuousDistribution_only  s    NR3''' U].g>>> 	 	IaLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAc                 
   t           j                            d          }|                    d          }|                    d          }t          j        ||          t          j        ||          }}t          j        t                      ||          }t          j        ||          }|	                    d|          }|
                    |          }t          |                                t          j        |                                dz                        t          |                                |                                           t          |                                |                    d                     t          |                                |                                           t          |                                |                                           t          |                                t          j        |                                                     t          |                                |                    d                     t          |                                |                    d	          d
z              t          |                                |                                           t          |                    |          |                    |                     t          |
                    |          |
                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                     |          |                     |                     t          |!                    |          |"                    |                     t          |#                    t          j        |                    |                    |                     t          |$                    t          j        |                    |                    |                     |%                    d          }t          j&        ||k    ||k     z            sJ d S )N   b2,' rn   )lbubr;   r8   rW  r  r  rr  rs  r;   r8   )'rB   r   r   minimummaximumr   truncater    	truncnormre  r   r   r   r   r   r   rc  r   r   r  r  sqrtr   r   ru  r   r   rb  r   r   rd  r   r   r   ra  r  r   r   rM  )	r2   r   r  r  r%  Y0r   r   r   s	            r5   test_truncatezTestTransforms.test_truncate  s   i##N33ZZZZB##RZB%7%7BN688r222_R$$FF7F--FF1IIrzz||b/@(A(ABBB		RZZ\\222

BFF3KK000"'')),,,

bffhh///,,..0A0ABBB

bhhsmm444

bhhsmma&7888		RZZ\\222a"&&)),,,a"&&)),,,q		25588,,,q		266!99---

BFF1II...RYYq\\222RYYq\\222		!bhhqkk222		"&)),,bffQii888

26!99--rvvayy999"vv{v{34444444rF   r8   r   r   r   c           	         t           j                            |          } G d dt                    }t	          |||dd          }|\  }}}}	}
}}}|j        }|j        }t                      }t          j	        ||          }||z
  |z  }||z
  |z  }|
                                \  }}|
                                \  }}t          |||z              t          |||z              t          j        dd          5  t          t          j        |                                          |                                           t          |                                |                                           t          |                                |                                |z              t          |                                |                                |z              t          |                                |                                |z              t          |                                |                                |d	z  z             t          |                                |                                d
z             t          |                                |                                t          j        |          z             t          |                                |                                           t          |                    |          |                    |          t          j        |          z
             t          |                    |          |                    |          |z             t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    ||          |                    ||                     t          |                    ||          |                    ||                     t          |                    ||          |                    ||                     t          |                    ||          |                    ||                     t          |                    |
          |                    |
          |z  |z              t          |                     |	          |                     |	          |z  |z              t          |!                    |
          |!                    |
          |z  |z              t          |"                    |	          |"                    |	          |z  |z              tG          dd          D ]}t          |$                    |d          |$                    |                     t          |$                    |d          |$                    |d          ||z  z             t          |$                    |d          |$                    |d          t          j        |          |z  z             	 d d d            n# 1 swxY w Y   |d	|z  z
  |z   }||d	z  z  |z  }t          j%        |j&                  }|
                                \  }}|
                                \  }}t          |||z              t          |||z              t          j        dd          5  t          |                                |                                |z              t          |                                |                                |z              t          |                                |                                |z              t          |                                |                                |z              t          |                                |                                |z              t          |                                |                                |z              t          |                                |                                |z              t          |                                |                                |z              t          |                                |                                |z              t          |                    |          |                    |          |z              t          |                    |          |                    |          |z              t          |                    |          |                    |          |z              t          |                    |          |                    |          |z              t          |                    |          |                    |          |z              t          |                    |          |                    |          |z              t          |                    |
          |                    |
          |z              t          |                     |	          |                     |	          |z              t          |!                    |
          |!                    |
          |z              t          |"                    |	          |"                    |	          |z              tG          dd          D ]}t          |$                    |d          |$                    |d                     t          |$                    |d          |$                    |d                     t          |$                    |d          |$                    |d                     	 d d d            d S # 1 swxY w Y   d S )Nc                        e Zd Z fdZ xZS )8TestTransforms.test_loc_scale.<locals>.TransformedNormalc                 Z     t                      j        t                      g|R i | d S r  )r>  __init__r   )r2   r	  r  rB  s      r5   r  zATestTransforms.test_loc_scale.<locals>.TransformedNormal.__init__  s6      !1!1CDCCCFCCCCCrF   )r   r   r   r  rC  rD  s   @r5   TransformedNormalr    sA        D D D D D D D D DrF   r  )rO   r   r   r   rO   )r   rI   )locscaler   r   r:   r  r}   r  r  r  )'rB   r   r   r   r   r  r  r   r   normru  r   r   r  r   r   r   r   r   r   r  r   signr   r   r   r   r   r   r   r   r  r   r   r   r  r  r  rw  )r2   rM   r   r   r  r   r   r7   r   r   r   r`   r   r   r  r  dist0dist_refx0y0r'   r(   a0b0r   zs                             r5   test_loc_scalezTestTransforms.test_loc_scale  s
   
 i##D))	D 	D 	D 	D 	D 9 	D 	D 	D ,tSlQP P PMPJaAt\>?h
  :#U333#g#g||~~1B28$$$28$$$[(;;; 	U 	UBF4??#4#455t||~~FFFDLLNNH,<,<,>,>???DKKMM5<<>>C+?@@@DIIKK);<<<DIIKK);<<<DMMOOU^^-=-=q-HIIID3355t}}7KLLLDMMOOU^^-=-=-NOOODMMOOU^^-=-=>>>DKKNNELL,<,<rve}},LMMMDHHQKK2)>???DKKNNELL,<,<===DHHQKK2777DLLOOU]]2->->???DIIaLL%**R..999DKK1--u||B/C/CDDDDHHQNNEIIb",=,=>>>DLLA..b"0E0EFFFDIIaOOUZZB-?-?@@@DLL..d0C0CE0IC0OPPPDIIaLL%**Q--*=*CDDDDMM$//1E1Ee1Kc1QRRRDJJqMM5;;q>>%+?#+EFFF1a[[ U UAu 5 5xq7I7IJJJAy 9 9 %Q	 : :UAX EG G GA~ > > %Q ? ?"'%..RSBS SU U U U	U1	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	UB qu#E1H}u$HT[!!||~~1B26"""26"""[(;;; 	A 	ADOO--u/?/?/A/AA/EFFFDLLNNEMMOOa,?@@@DKKMM5<<>>A+=>>>DIIKK)9:::DIIKK)9:::DMMOOU^^-=-=-ABBBD3355u7O7O7Q7QTU7UVVVDMMOOU^^-=-=-ABBBDMMOOU^^-=-=-ABBBDKKNNELLOOA,=>>>DHHQKK1)9:::DKKNNELLOOa,?@@@DHHQKK1)9:::DLLOOU]]1-=-=-ABBBDIIaLL%**Q--!*;<<<DLL..d0C0Ca0GHHHDIIaLL%**Q--!*;<<<DMM$//1E1E1IJJJDJJqMM5;;q>>A+=>>>1a[[ A AAu 5 5u||Au7M7MNNNAy 9 95<<9;U;UVVVA~ > > %Q ? ?A A A AA)	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	As&   >X\\!$\!S%r44r8;r8r}   exp_powr  powc                 
   t           j                            d          }|                    d          }|                    d          }t                      |z  |z   }|dk    rt	          j        |          }nt           j        |z  }t	          j        |t          j        |                    }|                    d|          }|	                    |          }	t          |                                t          j        |                                                     t          |                                |                                           t          |                                |                    d                     t          |                                |                                           t          |                                |                                           t          |                                t          j        |                                                     t          |                                |                    d                     t          |                                |                    d	          d
z              t          |                                |                                           t          |                    |          |                    |                     t          |	                    |          |	                    |                     t          |                    |          |                    |                     t          |                    |	          |                    |	                     t          |                    |	          |                    |	                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                     |          |!                    |                     t          |"                    t          j        |	                    |                    |	                     t          |#                    t          j        |	                    |                    |	                     d}
t          |$                    |
          t          j        |$                    |
                               d S )Nr  rn   r  )r  r  r  r  rr  rs  r;      M [ r   )%rB   r   r   r    r   r  elognormre  r   r   r   r   r   r   rc  r   r   r  r  r  r   r   ru  r   r   rb  r   r   rd  r   r   r   ra  r  r   r   )r2   r  r   r#  rH  r  r%  r  r   r   r   s              r5   test_exp_powzTestTransforms.test_exp_pow=  s    i##N33ZZ

6""HHUNRe	!AA	A]5r

333FF7F--FF1IIrzz||(<(<===		RZZ\\222

BFF3KK000"'')),,,

bffhh///,,..0A0ABBB

bhhsmm444

bhhsmma&7888		RZZ\\222a"&&)),,,a"&&)),,,q		25588,,,q		266!99---

BFF1II...RYYq\\222RYYq\\222		!bhhqkk222		"&)),,bffQii888

26!99--rvvayy999T**BF18883E3E,F,FGGGGGrF   r  )rO   r:   r=  z/`scale=-1` fails on 32-bit; needs investigationc                    t           j                            d          }|                    d          }t          j        |          t	          |          }}t          j        t
          j                  }||z   ||          z  }|dk    rt          |          nt          |           }||z  }|	                    d|          }	|
                    |	          }
t          j        |
          }t          |                                t          j        |                                                     t          |                                |                                           t          |                                |                                           t          |                                |                                           t          |                    |	          |                    |	                     t          |
                    |	          |
                    |	                     t          |                    |	          |                    |	                     t          |                    |
          |                    |
                     t          |                    |
          |                    |
                     t          |                    |	          |                    |	                     t          |                    |	          |                    |	                     t          |                    |	          |                    |	                     t          j        dd          5  t          |                    |          |                    |                     t          |                    |          |                    |                     d d d            n# 1 swxY w Y   d	}t          |	                    |
          ||	                    |
          z             d S )Nr  rn   r  r   r  rT  r   r   r  r   )rB   r   r   r  r  r   r\  rI  r   r   r   r   r   r   r   r   ru  r   r   r   r   r   r   r   r   r  r   )r2   r  r   r'   r  InvGammar  r  r%  r   r   r   r   s                r5   test_reciprocalzTestTransforms.test_reciprocale  s    i##N33JJv
 gennc%jje *5>::E\HHqMMM)  !88FQKKKK&1+++AIIIGI--FF1IIvayyrzz||(<(<===		RZZ\\222

BIIKK000		RZZ\\222a"&&)),,,a"&&)),,,q		2771::...q		2771::...

BHHQKK000RYYq\\222RYYq\\222		!bjjmm444[(;;; 	A 	AAIIdOORZZ-=-=>>>AJJt,,bkk$.?.?@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A T**E18883E3E,FGGGGGs   A-PPPc                 
   t           j                            d          }|                    d          }t          |          }t	          j        |          }t	          j        |          }|                    d|          }|                    |          }t          |
                                t          j        |                                                     t          |                                |                                           t          |                                |                    d                     t          |                                |                                           t          |                                |                                           t          |                                t          j        |                                                     t          |                                |                    d                     t          |                                |                    d          d	z              t          |                                |                                           t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          j         d
          5  t          |!                    t          j        |                    |                    |                     t          |"                    t          j        |                    |                    |                     d d d            n# 1 swxY w Y   d}t          |#                    |          t          j        |#                    |                               d S )Nr  rn   r  r  r  r  rr  rs  r;   r   )r   r  r   )$rB   r   r   r   r   loggammar   re  r   r   r   r   r   rc  r   r   r  r  r  r   r   ru  r   r   rb  r   r   rd  r   r   r   ra  r   r  r   r   )	r2   r   r'   r  r  r%  r   r   r   s	            r5   test_logzTestTransforms.test_log  s   i##N33JJvQKKK^AIaLLFF7F--FF1IIrzz||(<(<===		RZZ\\222

BFF3KK000"'')),,,

bffhh///,,..0A0ABBB

bhhsmm444

bhhsmma&7888		RZZ\\222a"&&)),,,a"&&)),,,q		25588,,,q		266!99---

BFF1II...RYYq\\222RYYq\\222		!bhhqkk222[*** 	> 	>AIIbfQii00"&&))<<<AJJrvayy11266!99===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> T**BF18883E3E,F,FGGGGGs   BS99S= S=c                    t          dd          }d}t          t          j        |                    d| dk    sJ t          d|z            d| dk    sJ t          t          j        |                    d| dk    sJ t          d	d          }d
}t          j        t          |          5  d|z   d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j        |           d d d            n# 1 swxY w Y   d}t          j        t          |          5  d|z   d d d            n# 1 swxY w Y   t          j        t          |          5  d|z   d d d            n# 1 swxY w Y   t          j        t          |          5  ddg|z   d d d            n# 1 swxY w Y   d}t          j        t          |          5  |dz   d d d            n# 1 swxY w Y   t          j        t          |          5  |dz   d d d            n# 1 swxY w Y   t          j        t          |          5  |ddgz   d d d            d S # 1 swxY w Y   d S )NrO   r:   r&   zUniform(a=1.0, b=2.0)zlog(r   z1/(zexp(r=  z=Division by a random variable is only implemented when the...r+   zBThe logarithm of a random variable is only implemented when the...z@Raising an argument to the power of a random variable is only...r        ?z=Raising a random variable to the power of an argument is onlyr   )r!   r   r   r   r  r-   r.   r  )r2   r  X_strr4   s       r5   test_monotonic_transformsz(TestTransforms.test_monotonic_transforms  st    a1'59Q<<  O5OOO33331q5zz^5^^^++++59Q<<  O5OOO3333bAQ].g>>> 	 	EE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	V].g>>> 	 	IaLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	T].g>>> 	 	AII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	].g>>> 	 	FF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	].g>>> 	 	#J!OO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 R].g>>> 	 	"II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	].g>>> 	 	FF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	].g>>> 	 	#sOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   4CC
C
.DDD7E		EE/FFF'F;;F?F?#G55G9<G9H--H14H1I((I,/I,c                    t           j                            d          }d\  }}}}|                    ddd          }t	          ||          }||z  |z   }t          |                    |          |                    ||z
  |z                       |||z  z   }t          |                    |          |                    ||z
  |z                       ||z  |z
  }t          |                    |          |                    ||z   |z                       |t	          ||          |z  z
  }t          |                    |          |                    | |z   |z                       d S )Nl   lO[5 )g7A`?gq=
ףp?g=
ףp=?g(\?r;   d   r&   )rB   r   r   r   r   r   r   r   )	r2   r   r'   r(   r  r  r7   r%  r  s	            r5   test_arithmetic_operatorsz(TestTransforms.test_arithmetic_operators  sT   i##$78821c5KKAs##!q!!!!GcMa!%%SE(9":":;;;!E'Ma!%%SE(9":":;;;eGcMa!%%SE(9":":;;;qA&&&u,,a!&&1"s(E)9":":;;;;;rF   c                 
   t           j                            d          }|                    d          }t          j        t                      |z             }t          j        |          }|                    d|          }|                    |          }t          |
                                t          j        |                                dz                        t          |                                |                                           t          |                                |                    d                     t          |                                |                                           t          |                                |                                           t          |                                t          j        |                                                     t          |                                |                    d                     t          |                                |                    d          d	z              t          |                                |                                           t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                     |                     t          |!                    t          j        |                    |                    |                     t          |"                    t          j        |                    |                    |                     |#                    d
          }t          j$        |dk              sJ d S )Nr  rn   r  r  r  r  rr  rs  r;   r8   r   )%rB   r   r   r   r  r    foldnormre  r   r   r   r   r   r   rc  r   r   r  r  r  r   r   ru  r   r   rb  r   r   rd  r   r   r   ra  r  r   r   rM  )r2   r   r  r%  r  r   r   r   s           r5   test_abszTestTransforms.test_abs  se   i##N33jj  Ifhhn%%^C  FF7F--FF1IIrzz||b/@(A(ABBB		RZZ\\222

BFF3KK000"'')),,,

bffhh///,,..0A0ABBB

bhhsmm444

bhhsmma&7888		RZZ\\222a"&&)),,,a"&&)),,,q		25588,,,q		266!99---

BFF1II...RYYq\\222RYYq\\222		!bhhqkk222		"&)),,bffQii888

26!99--rvvayy999"vfqj!!!!!!!rF   c                    t          j        t           j                  } |d          }t          |           }t	          |                    d          |                    d                     t	          |                    d          |                    d                     t	          |                    d          |                    d                     t	          |                    d          |                    d                     t	          |	                    d          |	                    d                     t	          |
                    d          |
                    d                     d S )Nr:   r  rO   )r   r\  weibull_minr  r   r   r   r   r   r   r   )r2   Weibullr  r%  s       r5   test_abs_finite_supportz&TestTransforms.test_abs_finite_support  s    )%*;<<GaLLLGGQXXa[[!((1++...QUU1XXquuQxx(((QXXa[[!((1++...QUU1XXquuQxx(((QYYq\\199Q<<000QVVAYYq		*****rF   c                 	   t           j                            d          }t                      dz  }t	          j        d          }|                    d|          }|                    |          }t          |	                                t          j
        |                                dz             d	           t          |                                |                                d	           t          |                                |                                           t          |                                |                                           t          |                                |                                           t          |                                t          j        |                                                     t          |                                |                    d
                     t          |                                |                    d          dz              t          |                                |                                           t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                     t          j
        |                    |                    |                     t          |!                    t          j
        |                    |                    |                     |"                    d          }t          j#        |dk              sJ d S )Nr  r:   rO   )dfr8   r  r  r}  r   rr  rs  r;   r   )$rB   r   r   r    r   chi2re  r   r   r   r   r   r   r   r   r  r  r  r   r   ru  r   r   rb  r   rc  r   rd  r   r   r   ra  r  r   r   rM  )r2   r   r%  r  r   r   r   s          r5   test_powzTestTransforms.test_pow  sU   i##N33HHaKZ1FF2CF((FF1IIrzz||b/@(A(AMMMM		RZZ\\====

BIIKK000"'')),,,

bffhh///,,..0A0ABBB

bhhsmm444

bhhsmma&7888		RZZ\\222a"&&)),,,a"&&)),,,q		25588,,,q		266!99---

BFF1II...RYYq\\222RYYq\\222		!bhhqkk222		"&)),,bffQii888

26!99--rvvayy999"vfqj!!!!!!!rF   N)r   r   r   r  r  r-   r   rY  r   r   rM   r   r   r  r   r  xfail_on_32bitr  r   r  r	  r  r  r  rr   rF   r5   r  r    s          5  5  5D [2
U
!!(;
(;a(H(H(HIII[[A [A  JI [AH [1[Y77#H #H 87 #HL [2[Wjjj11[ QRR&H &H SR 21 &HP [1H H HB     D< < <$" " "@+ + +" " " " "rF   r  c                   `    e Zd Zej                            d          d             Zd Zd ZdS )TestOrderStatisticr   c                 $   t           j                            d          }t          dd          }d}t          j        dgdgdgg          }t          j        |||          }t          j        ||dz   |z
            }|                    d|	          }|	                    |          }t          t          j        |                                          |                                           t          |                                |                                           t          |                                |                                           t          |                                |                                           t          |                                |                    d
          d           t          |                                |                    d          dz   d           t          |                                |                    d                     t          |                                |                                           t          |                    |          |                    |                     t          |	                    |d          |	                    |d                     t          |                    |d          |                    |d                     t          |                    |d          |                    |d                     t          |                    |d          |                    |d                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          j        dd          5  t          |                    t          j         |                    |                    |                     t          |!                    t          j         |                    |"                    |                     d d d            n# 1 swxY w Y   d}	tG          j$        tJ          |	          5  t          j        ||d           d d d            n# 1 swxY w Y   tG          j$        tJ          |	          5  t          j        |d|           d d d            n# 1 swxY w Y   tG          j$        tJ          |	          5  t          j        ||d           d d d            n# 1 swxY w Y   tG          j$        tJ          |	          5  t          j        |d|           d d d            d S # 1 swxY w Y   d S )Nl   Cvu= r   rO   r&   r}   r;   )r  rr  r  rr  rz  r  rs  r  r  r  r   r   r   r   z0`r` and `n` must contain only positive integers.r+   r=  r  )&rB   r   r   r!   ru   r   order_statisticrx   re  r   r   r  r   r   r   r   r  r   r   r   rc  ru  r   r   r   r   r   r   r   ra  r   r  r   r   rd  r-   r.   r  )
r2   r   r  r  r  r%  r  r   r   r4   s
             r5   test_order_statisticz'TestOrderStatistic.test_order_statistic4  s   i##$455a1JaS1#''!!qA...Z1q519%%FF7F--FF1II 	q||~~..

===		RZZ\\222"'')),,,

bffhh///

bhhsmm%@@@@

bhhsmma&7eDDDD

BFF3KK000		RZZ\\222a"&&)),,,a	22AEE!LE4Q4QRRRq33QVVAlV5S5STTTq33QVVAkV5R5RSSS)44aggag6T6TUUURYYq\\222RYYq\\222		!bhhqkk222[(;;; 	> 	>AIIbfQii11266!99===AJJrvayy11266!99===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> E]:W555 	0 	0!!qB////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0]:W555 	0 	0!!rQ////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0]:W555 	1 	1!!qC0000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1]:W555 	1 	1!!sa0000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s[   =BSS!ST&&T*-T*U00U47U4V::V>V> XX	X	c                     t          j        t           j                  } |            }|dz  dz   }t          j        |dd          }t	          |                                |                                           d S )Nr}   r:   r;   r  r  )r   r\  r   r  r   ru  )r2   r!   r  r%  r  s        r5   test_support_gh22037z'TestOrderStatistic.test_support_gh22037_  sk     )%-88GIIaC!G!!qA...		QYY[[11111rF   c                    t          j        t           j                  }t          j        t           j                  }ddgd}}ddgdgg}}dggdggg} |            }t          j        |||          }	t          j        |	||	          }
 |||
          }t          j        |||	          }t          j                            |
	                    |          |	                    |                     d S )Nr  r=  rO   r;   r<   r}   g333333ӿr   r  r&   )
r   r\  r  r  r  r  rB   rf  r   r   )r2   r    TruncatedNormalr'   r(   r  r  r7   r  Y1Z1r  Z2s                r5   test_composition_gh22037z+TestOrderStatistic.test_composition_gh22037i  s    
 (441%/BBBx1A3*1fXwVXX^B1%%"2a000_qA&&&"2a000

""266!99bffQii88888rF   N)	r   r   r   r-   r   rY  r  r  r$  rr   rF   r5   r  r  3  s]        [2(1 (1 (1T2 2 29 9 9 9 9rF   r  c                       e Zd Zd Zd Zej                            dej	        ej	        fej
        ej        fg          d             Zd Zd Zd Zd Zd	S )
TestFullCoveragec                    t          j        t                    5  t          j        d d           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        d d           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        d            d d d            d S # 1 swxY w Y   d S Nr  )r-   r.   r  r   rD   r0   __str__r|  s    r5   test_DomainzTestFullCoverage.test_Domain~  sy   ].// 	' 	'T2&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'].// 	6 	6+D"555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6].// 	" 	"OD!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s3   <A A  BB	B&CCCc                     t          j        t                    5  t          j        d d           d d d            d S # 1 swxY w Y   d S r(  )r-   r.   r  r   validater|  s    r5   test_ParameterzTestFullCoverage.test_Parameter  s    ].// 	* 	*b)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   =AA)dtype_in	dtype_outc                     t          d          }t          d|          }t          j        ddg|          }|                    |i           \  }}}t          ||           ||k    sJ t          |dd	g           d S )
N)r=  rO   r7   rU   r  g      @r  r  TF)r   r   rB   ru   r,  r   )	r2   r.  r/  r3   r  r7   arrrg  r  s	            r5   "test_RealParameter_uncommon_dtypesz3TestFullCoverage.test_RealParameter_uncommon_dtypes  s     w''"3v666	JSz222%..q2.FFUES!	!!!!UT5M*****rF   c                      G d dt                     } |            }t          j        }||_        t          j        dg|          }|                    |          j        |k    sJ d S )Nc                   B    e Zd Z ed ed                    Zd ZdS )NTestFullCoverage.test_ContinuousDistribution_set_invalid_nan.<locals>.TestDistr7   )r  r  r)   rU   c                     dS )Nr   rr   r2   r7   r	  r  s       r5   _logpdf_formulaz^TestFullCoverage.test_ContinuousDistribution_set_invalid_nan.<locals>.TestDist._logpdf_formula  s    qrF   N)r   r   r   r   r   r   r8  rr   rF   r5   TestDistr5    sD        &s==83T3T3TUUUI    rF   r9  r  r  )r   rB   float32rh  ru   r   rg  )r2   r9  r  rg  r7   s        r5   +test_ContinuousDistribution_set_invalid_nanz<TestFullCoverage.test_ContinuousDistribution_set_invalid_nan  s    
	 	 	 	 	- 	 	 	
 HJJ
JuE***xx{{ E))))))rF   c                 :   t          t          j        d                    j        t          j        t          j                  j        k    sJ t          t          j        d                    j        t          j        t          j                  j        k    sJ d S )Nr  rO   )r   rB   float64maxfinfoint64iinfor|  s    r5   test_fiinfozTestFullCoverage.test_fiinfo  sn    rz"~~&&*bhrz.B.B.FFFFFrx{{##'28BH+=+=+AAAAAAArF   c                     t          t                    }d|v sJ t          t                    }d|v sJ t          t                    }d|v sJ d S )Nz"accepts no distribution parameterszaccepts one parameterizationzaccepts two parameterizations)r   r   r    r   )r2   msgs     r5   test_generate_domain_supportz-TestFullCoverage.test_generate_domain_support  sb    &~663s::::&v..-4444&{33.#555555rF   c                 `   t          dd          }t          j        dk     rt          |          dk    sJ nt          |          dk    sJ t          j        dk     rt          |dz  dz             d	k    sJ nt          |dz  dz             d
k    sJ t          t          j        d          d          }t          |          dk    sJ t          t          j        dt          j                  t          j        dt          j                            }t          |          dk    sJ d S )Nr   rO   r&   r  zUniform(a=0.0, b=1.0)z-Uniform(a=np.float64(0.0), b=np.float64(1.0))r;   r:   z3.0*Uniform(a=0.0, b=1.0) + 2.0zOnp.float64(3.0)*Uniform(a=np.float64(0.0), b=np.float64(1.0)) + np.float64(2.0)r<   z'Uniform(a=array([0., 0., 0., 0.]), b=1)r  z[Uniform(a=array([0., 0., 0., 0.], dtype=float32), b=array([1., 1., 1., 1.], dtype=float32)))r!   rB   r  r  r  r:  r  )r2   r  s     r5   #test_ContinuousDistribution__repr__z4TestFullCoverage.test_ContinuousDistribution__repr__  sB   a1>C7755555577MMMMM>C!a==$EEEEEE!a==%   
 bhqkkQ'''AwwCCCCCbhq
333rwq
7S7S7STTTAww9
 
 
 
 
 
rF   N)r   r   r   r*  r-  r-   r   r   rB   float16int16r=  r2  r;  rB  rE  rG  rr   rF   r5   r&  r&  {  s        " " "* * * [6 "
BJ7 ""*578 8+ +8 8+* * * B B B6 6 6
 
 
 
 
rF   r&  c                      e Zd Z edd          Z e ej        d           ej        d                    Z edd          Z	 edd          Z
 e ej        d          d          Zej                            d	ee ej        dd
g          z
   ej        eej                            ej        dk     d                     ej         ej        dej                  ez   ej        dej                  z   ej                            ej        dk     d                    dez  dz   edz  dez  dz   dz  dez  dz   dz  dez  ddez  dz   z  ddez   z   ej        edd           ej        edd           ej        e	e
gddg           ee           ej        e           ej        dez              ej        dd
g          ez   ej        d
dg          z   g          d             Zej                            d	e ej        dd
          e	z  dz   d
e	z   ej        dd          z    ej        dd
          e	z  dz    ej        edd           ej        e ej        d            ej        d                     ej        e	 ej        dd          d          edz  dd ej        e          z   z  dez  g
          d             Z dS )	TestReprsr   rO   r&   r  r  r=  r"  i  r   r  r  z#numpy 1.x didn't have dtype in repr)reason)marksr:   r  r;   r<   r}   r  g?g?g333333?r   weightsr  c                 *   ddl m} ddl m} ddlm}m}m}m}m} ddlm	}	m
}
 ddlm} t          t          |                    }|                    dd	          }|                    dd	          }t!          ||           |j        |j        u sJ d S )
Nr   )array)r:  )r  r  r   r  r  )r   r    )r!   r8   i  rT  )numpyrQ  r:  scipy.statsr  r  r   r  r  r   r    scipy.stats._new_distributionsr!   r^   r  r   r   rg  )r2   r   rQ  r:  r  r  r   r  r  r   r    r!   new_distrr  rs  s                  r5   test_executablezTestReprs.test_executable  s    L 	 !!!!!!HHHHHHHHHHHHHH////////::::::T

##++BD+11///55Wg&&&}------rF   c                 J    t          t          |                    dk     sJ d S )N   )lenr  )r2   r   s     r5   test_not_too_longzTestReprs.test_not_too_long  s'    $ 4::$$$$$$rF   N)!r   r   r   r!   UrB   r:  Vr    r  r%  r  r  r-   r   r   rQ  paramskipifr  r  r=  r   r  r  r   r  r  r   rV  fullarangerZ  rr   rF   r5   rK  rK    s       !qA*"*S//ZRZ__555A"AA!1A("(4..***A[#s$$$FLk((NS(@ )     FL,,,Q.!2:1N1N1NNk((NS(@ )     aC!GqDqS1WqLqS1WqLqD!aLQK!E!!qA...EN1c3''EM1a&3*555CFFEIaLLEIa!eBHc3Z  "XRXsCj%9%99=	
" "F. .G" "F. [BGD#"S(!GgbgdC(((BGD#"S(EN1b!$$EN1wrwt}}ngbgdmm<<!E!!yryD'9'9TBBBqD1yuy||#$qD	
 % % % % %rF   rK  c                   \    e Zd Z ed eej         ej        f                    Zd ZdS )	MixedDistr7   r)   rU   c                 $   ddt          j        dt           j        z            z  z  t          j        d|dz   dz  dz  z            z  ddt          j        dt           j        z            z  z  t          j        d|dz
  dz  dz  z            z  z   S )	N皙?皙?r:         g      ?333333??r  )rB   r  rC   r  r7  s       r5   _pdf_formulazMixedDist._pdf_formula  s    rwqw///026$4q?P:P3Q3QQ325!1!112RVD1S5#+PQAQ<Q5R5RRS 	TrF   N)	r   r   r   r   r   rB   r   r   ri  rr   rF   r5   rb  rb    sT        s==RVGRVCT+U+U+UVVVIT T T T TrF   rb  c                   r    e Zd Zd Zej                            dddg          d             Zd Zd Z	d Z
d	S )
TestMixturec                 ^   d}t          j        t          |          5  t          g            d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          d           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          t	          ddg          t	                      g           d d d            n# 1 swxY w Y   d	}t          j        t          |          5  t          t	                      gd
d
g           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          t	                      gdg           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          t	                      gdg           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          t	                      t	                      gd
dg           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          t	                      t	                      gddg           d d d            d S # 1 swxY w Y   d S )Nz7`components` must contain at least one random variable.r+   z3Each element of `components` must be an instance...rF  z5All elements of `components` must have scalar shapes.rO   r:   )r#  z5`components` and `weights` must have the same length.r  rN  z)`weights` must have floating point dtype.z`weights` must sum to 1.0.r  z#All `weights` must be non-negative.r  rf  )r-   r.   r  r   r    r  s     r5   r  z!TestMixture.test_input_validation#  st   K]:W555 	 	BKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 H]:W555 	 	I	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 J]:W555 	3 	3V1v&&&1222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 J]:W555 	4 	4VXXJc
3333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 >]:W555 	- 	-VXXJ,,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- >]:W555 	- 	-VXXJ,,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- /]:W555 	> 	>VXXvxx(3*====	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 8]:W555 	? 	?VXXvxx(3+>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   :>>"A>>BB&.C  C$'C$!D55D9<D9 F		FF1 GG!$G!.H??II'.J""J&)J&re  rr   )r8   c           	      	   t           j                            d          }t          t	          dd          t	          dd          fd          }t                      }|                              }fd	} ||                                |                                            ||                                |                                            ||                                |                                            ||	                                |	                                            ||
                                |
                                            ||                                |                                            ||                                |                                            ||                                |                                            ||                                |                                            ||                    |          |                    |                      ||                    |          |                    |                      ||                    |          |                    |                      ||                    |          |                    |                      ||                    |          |                    |                      ||                    |          |                    |                      ||                    |          |                    |                      ||                    |          |                    |                      ||                    |          |                    |                      ||                    |          |                    |                     d
D ]L}t3          d          D ]:} ||                    ||          |                    ||          d           ;Md|                    |          }	|	j        k    sJ t;          j        |	                                |j                  j         dk    sJ d S )Nl   $8-@      пre  r"  r  rh  rd  rg  rN  c                 p    dk    rt          j        |           sJ t          j        j        | |fi | d S )Nrr   )rB   ri  rf  r   )rg   rj   r  re  s      r5   r   z/TestMixture.test_basic.<locals>.assert_allcloseL  sE    {{{3'''''J&sC::6:::::rF   r  r}   r  rz  r  )r8   r   r}   r   g?)!rB   r   r   r   r    rb  r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r  r   r   r   r  r  r   re  r   ks_1sampravelr  )
r2   re  r   r  r%  r7   r   r  r  r   s
    `        r5   
test_basiczTestMixture.test_basicD  s
   i##$677VuC000&Cs2K2K2KL&( ( (KKJJu	; 	; 	; 	; 	;
 	777		QYY[[111!&&((+++

AHHJJ///!&&((+++

ajjll333,,..0D0D0F0FGGG

ajjll333

ajjll333QXXa[[111a!%%((+++QXXa[[111a!%%((+++		!aiill333q		166!99---		!aiill333q		166!99---

1qzz!}}555

AGGAJJ///6 	, 	,Dq , ,T : : !T : :%*, , , , ,, HHUH$$w%~aggii//6======rF   c                 J   d}t          j        t           j                  } ||          }t          j        || f          }t	          j        ddd          }t          |                    |          t          j        |                              |                     d S )Nre  r  r<   rT  )	r   r\  r  r   rB   r\   r   r   dgamma)r2   r'   r  r  r%  r7   s         r5   test_default_weightsz TestMixture.test_default_weightsp  s    '44EAJJJM1qb'""KAs##a%,"3"3"3"7"7":":;;;;;rF   c                    t          dd          t          dd          g}d}t          ||          }t          j        t                    5  d|_        d d d            n# 1 swxY w Y   t          j        t                    5  d|_        d d d            n# 1 swxY w Y   |d	         |j        d
<   |j        d
         |d
         k    sJ |d	         |j        d
<   |j        d
         |d
         k    sJ d S )Nrn  re  r"  r  rh  ro  rN  r8   rO   r   )r    r   r-   r.   r$  
componentsrO  )r2   ry  rO  r  s       r5   test_propertieszTestMixture.test_propertiesx  ss   S1116S3L3L3LM
J000 ]>** 	 	AL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]>** 	 	AI	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 %Q-Q|A*Q-////qz	!y|wqz))))))s$   A##A'*A'BB"Bc                    t           j                            d          }t          j        t          j                  } |            }t          j        ||g          }|                    d          }t           j                            |	                    |          |	                    |                     t           j                            |
                    |          |
                    |                     t           j                            |                    |          |                    |                     t           j                            |                    |          |                    |                     d S )Nl    nppRr8   r=   )rB   r   r   r   r\  cauchyr   rf  r   r   r   r  r   )r2   r   CauchyX0r  r   s         r5   test_inversezTestMixture.test_inverse  s    i##$;<<(66VXXM2r(##JJBJ

""166!99bggajj999

""1771::rxx{{;;;

""199Q<<A???

""1::a=="++a..AAAAArF   N)r   r   r   r  r-   r   r   rs  rw  rz  r  rr   rF   r5   rk  rk  "  s        ? ? ?B [Wr5k22)> )> 32)>V< < <* * *$B B B B BrF   rk  )r   )U	itertoolsr   rX  r  r~  r   rR  rB   r   r-   numpy.testingr   r   
hypothesisr   r   r	   r
   hypothesis.extra.numpyextrarX   scipyr   r   scipy.stats._fitr   scipy.stats._ksstatsr   rS  r   scipy.stats._distr_paramsr   r   r  r   r   r   r   r   r   r   r   r   r   rT  r   r   r   r   r    r!   r"   r$   r   continuous_familiesdiscrete_familiesrZ  r   r   r   r  r  r  rv  r   r   r   r   r   r  r   Sobolr  rd  r  r  r  r  r(  r  r  r&  rK  rb  rk  rr   rF   r5   <module>r     s       				                   7 7 7 7 7 7 7 7 E E E E E E E E E E E E % % % % % % % % %             0 0 0 0 0 0 ( ( ( ( ( (       < < < < < < < <' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' O N N N N N N N N N ? ? ? ? ? ? 1 1 1 1 1 1 1 1 1 1y6 y6 y6 y6 y6 y6 y6 y6x"N "N "N "NL 
	    !22! ! ! ! ! ! ! !B '  '  'F" " "4$ 4$ 4$l0$ 0$ 0$f$ $ $@WG WG WGtt t tH F9--UUWWf$566'8998*--bi&93:sy%QRR9 9 SR .- :9 76 .-
9<% % %N$ $ $8@, @, @,F      w w w w w w w wtT7 T7 T7 T7 T7 T7 T7 T7n
G" G" G" G" G" G" G" G"RE9 E9 E9 E9 E9 E9 E9 E9PO
 O
 O
 O
 O
 O
 O
 O
dK% K% K% K% K% K% K% K%\T T T T T& T T TtB tB tB tB tB tB tB tB tB tBrF   