
    _Mh
6             
          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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m,Z,m-Z-  G d d          Z.d7dZ/e)e,e-e*gZ0 G d d          Z1d Z2d Z3d Z4d Z5d Z6d Z7d Z8ej9        :                    de,f          ej9        :                    d e;            dg          ej9        :                    d e;            dg          ej9        :                    dd g          ej9        :                    d!ej<        j=        ej>        ej?        g          d"                                                             Z@d# ZAd$ ZBd% ZCd& ZD G d' d(          ZE G d) d*          ZF G d+ d,          ZG G d- d.          ZH G d/ d0          ZI G d1 d2          ZJ G d3 d4e#          ZK G d5 d6          ZLdS )8    N)deepcopy)inf)assert_allcloseassert_equal)
strategiesgivenreproduce_failuresettings)stats)_kolmogorov_smirnov)kolmogn)qmc)distcont)
_Domain_RealDomain
_Parameter_Parameterization_RealParameterContinuousDistributionShiftedScaledDistribution_fiinfo_generate_domain_supportMixture)StandardNormal_LogUniform_Gamma)NormalUniformc                      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                              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                              d                         Zd Z dS )Test_RealDomainl   @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      a/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/stats/tests/test_continuous.pytest_ivzTest_RealDomain.test_iv   s    z222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)r.   r3   r#   r$   r/   s        r1   test_contains_simplez$Test_RealDomain.test_contains_simple#   sX     w11vGGGV__Q''!a%AF);<<<<<    r7   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_valuer6   g     @@)elementsr4   r"   r<   r#   r/   r$   z<=<z(a z	 x) & (x z b))r-   drawnpstarraysfloating_dtypesr>   concatenatelinspacer   define_parametersr   r@   evalr   )r.   rF   rG   rH   rI   input_shapesresult_shapeshape_ashape_bshape_x
a_elements
b_elementsr#   r$   dr3   r/   resleft_comparisonright_comparisonrefs                        r1   test_containszTest_RealDomain.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 z(3['AC C C  KMM!J!J!J!/KMM!J!J!J	L 	L 	L ooaQ00 #.6$$3#.744CHHH3CHHHIIS#rB   caseFTz(-\infty, \pi])r#      TFz[a, 5)c                 ~    t          |d d         |dd                   }t          |          |d         k    sJ d S )Nr6   r8   r<   )r   str)r.   rh   r/   s      r1   test_strzTest_RealDomain.test_strX   sG    
 tBQBx4!9EEE6{{d1g%%%%%%rB   )rL   L)whitelist_categories)r#   r$   rG   rH   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   rk   )	r.   r#   r$   rG   rH   left_bracketright_bracketr/   rf   s	            r1   	test_str2zTest_RealDomain.test_str2`   s     O1%%O1%%)2sss*31v(3['AC C C6q66A6}666{{c!!!!!!rB   c                 f    t          d          }t          d          }|j        |j        usJ d S )Nr   rK   r%   )r   ru   )r.   domain1domain2s      r1   test_symbols_gh22137z$Test_RealDomain.test_symbols_gh22137x   s?     //////go555555rB   N)!__name__
__module____qualname__r>   randomdefault_rngrngr2   r)   markparametrizeuniformr   r?   rA   slowr   rT   mutually_broadcastable_shapesr   booleansrI   rg   rl   one_ofdecimals
characterssampled_fromlistr   ru   ry   r~    rB   r1   r    r       sq       
)


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 [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 6rB   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   rK   )rO   rC   )r   proportionsi_parameterizationr   )rE   typical)parameter_valuesr   r   regionr{   TTprQ   )r   r   ignoredivideinvalid)_num_parameterizationsrS   r   integers_num_parametersrT   r   _drawtuplebroadcastable_shapes	_variable_parametersr>   broadcast_shapesr   r   errstatelog)familyrI   r   r   rE   n_parameterizationsin_parametersrF   r\   distx_shaper3   x_result_shapey_shapeyxy_result_shapep_domainp_varr   logps                        r1   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6<00H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                    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                    d'                                                             Z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   rN   rI   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_dimsrE   max_sider   r   r   samplerK   rb   r   )r>   r   r   r   rS   rT   array_shapesr   check_supportcheck_moment_funcscheck_sample_shape_NaNsr   Halton)r.   r   rI   r   r   r   tmpr   r3   r   r   r   r\   r   r   sample_shapeqrngs                    r1   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,r4   zfunc, methods, argentropylog/exp
quadratureN
logentropymedianicdfmodeoptimizationmeancachevarianceskewnesskurtosispdfr3   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   )r3   r   r   r   )r   r   overr   r6   r   r   FTr   addition)r   r)   skipr>   r   r   r   r   check_dist_funcr   standard_deviationr   
isinstancer   
check_cdf2check_ccdf2)r.   r   rI   r   funcmethodsargr   r   r   r   r3   r   r   r   r\   r   r   argss                      r1   
test_funcszTestDistributions.test_funcs   s   . 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)r.   pltXaxs       r1   	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   rK   r   rtolr   r   tolr>   asarraygetattrr   r   )	r.   r  r   r   r   ifuncr3   p1p2s	            r1   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0rB   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   rK   r   r  r  )r.   r  r   r   r   r  x1x2s           r1   test_icomplement_safez'TestDistributions.test_icomplement_safe  s    LNNJd|$$q+&&3{?++U1.///U1\***RUBqE"""!u1~~~~RUQqT666666rB   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  )r4      )r  r  r  r4   r   r  subtraction_safesubtractionr  )#BǻO
㒻#B;O
;r  )r   r  r"  r!  r!  r   )	r   r   r  r   r   r   r>   r  r   )r.   r   r3   r   p0r  r  s          r1   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++++++rB   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   r   )r>   r  super_entropy_formular   )r.   paramsout	__class__s      r1   r+  zHTestDistributions.test_logentropy_safe.<locals>._Normal._entropy_formula8  sC    j!9!9!C!CF!C!CDDA&B
rB   )r   r   r   r+  __classcell__r.  s   @r1   _Normalr'  7  s8                rB   r1  rK   r6   r7   sigmar   r   logexp_safer  logexpr   r   r)  rK   )r   r   r>   r   r   isinfallr   )r.   r1  r   res1res2rf   i_fls          r1   test_logentropy_safez&TestDistributions.test_logentropy_safe5  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 )Nr2  r3  )rK   ,  )ir6   -  r   r5  r6  r  r7  r   r   r)  rK   )r   r   r>   r   r   r8  r9  r   )r.   r   r3   r   r:  r;  rf   r<  s           r1   test_logcdf2_safez#TestDistributions.test_logcdf2_safeJ  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 )Nr6   r3  r   r?  rK   rA  r   r5  r6  r  r7  r   r   )r   r   r  r>   r   )r.   r  r   r3   r   r:  r;  rf   s           r1   test_logexp_safez"TestDistributions.test_logexp_safeZ  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   rI   r   r   r   r  r  r  r$  r=  rB  rD  r   rB   r1   r   r      s(       [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, , ,,, , ,*, , ,  []Xy,ABB! ! CB! ! !rB   r   c                 6   ||z   }|dk    r| j         }dh}|                     d| d          r/t          |t          j                  s|                    d           |D ]7} ||||          }	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          j        t          j        |	|                    rJ t          ||           9d S )	Nr   inverse_transform__formular  )r	  r   r   *   )r   
_overridesr   r   	QMCEngineaddr>   broadcast_toget_valid_parametersshaper   testingdtype_dtypeisscalarr9  isfinitenananyequal)r   fnamer   r\   r   
full_shapesample_methodr   r	  rc   valid_parameterssample1sample2s                r1   r   r   i  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6"(30011111Wg&&&&'' 'rB   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)ra  check_nans_and_edgesrQ  _shaperS  rT  )r   r#   r$   s      r1   r   r     s    <<>>DAqy$222y$2227dk!!!!7dk!!!!7dk!!!!7dk!!!!!!rB   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׊>rI  rJ  r  r   )r   copyr)   r*   NotImplementedErrorr  rb  rL  rN  r>   rR  r   rQ  rU  r   exprS  )
r   rZ  r   r\   r   r   rf   tol_overrider	  rc   s
             r1   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 ]}|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_formular  _cdf_formula_ccdf_formular   _cdf2_formular  +=re                  )rj  rL  rN  r   r>   rR  r   rQ  r   rU  rl  r   r   rS  	r   r   r3   r   r\   r   rf   r	  rc   s	            r1   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 
$ 
$;> 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#####
$ 
$rB   c                 F   |                                 }|                     d|rdnd d          r|                    d           |                     |          |                     |          z   }t
          j                            |j        |           |t                      k    rt          j
        |          sJ |D ]}|r*t          j        |                     |||                    n|                     |||          }t
          j                            ||d           t
          j                            |j        |j                   t
          j                            |j        |           |t                      k    rt          j
        |          sJ d S )	NrI  r    ccdf2_formular  r  ru  rv  )rj  rL  rN  r   r   r>   rR  r   rQ  r   rU  rl  r   r   rS  rx  s	            r1   r   r     s~    llnnG>C/55R>>>?? I
((1++		!
$CJCI|444uww{3 $ $<? 3rvdll1al77888IIa6I22 	

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

	39555

	<888577"";s#####$ $rB   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  }|d	v rt          ||         t          j                    t          ||         t          j                    t          ||| z           t          j                    t          ||| z           t          j                    n|d
v rbt          ||         d           t          ||         d           t          ||| z           d           t          ||| z           d           n|dv rft          ||         t                      t          ||         d           t          ||         t                      t          ||         d           nO|dv rZt          ||         d           t          ||         d           t          ||         d           t          ||         d           n|dv rft          ||         d           t          ||         t                      t          ||         d           t          ||         t                      n|dv rZt          ||         d           t          ||         d           t          ||         d           t          ||         d           n)|dv rt          ||	dk             t          j	                   t          ||	dk             t          j	                   t          ||dk             ||dk                        t          ||dk             ||dk                        n|dv rt          ||	dk             t          j	                   t          ||	dk             t          j	                   t          ||dk             ||dk                        t          ||dk             ||dk                        |dvr5t          j        |||dk    z                                                     sJ d S d S )N>   r   r   r{   r   r<   >   ilogcdfr   r   r)  rK   >   r   >   r   >   r   >   r   >   r   >   r   >   r   r}  >   r   r   >   r   rg  ra  r   rh  )rP  r   r   r   r/   classify_argr>   broadcast_arraysr   rW  ra  rO  rQ  rV  r9  )r   rZ  r   rc   r]  
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_pluss                     r1   rb  rb    se   +D11!!! 6\JJJ

	)	)	) SD!9MMM

^*
"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@@%*.>> 
S*+bfW555S)*RVG444S+yj89BF7CCCS*iZ7826'BBBB	'		S*+Q///S)*A...S+yj891===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////	+		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////	%	%	%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MMM{3yLA,=>?@@DDFFFFF NMFFrB   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 ]X}                     |dd
          } ||dd| ||d          	                                |d            ||dd|           Y                     ddd
          }                                   t          d          D ]{} ||ddd	                                |dd
          ||dz  z  z  }|j        |k    sJ  ||dd| ||d          	            ||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  r4   rv  )momentr   rQ  r)   r*   rk  )orderkindr	  rf   successrc   re  r   s         r1   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_rJ  Forders   )rL  r  setrange)r  r  formula_name	overridesr  r  r   s         r1   has_formulaz'check_moment_funcs.<locals>.has_formulai  sg    0$000OOL11	 	5$--(CaMM::rB   r  rawr   F)r  r   r  r  r  generalr   quadrature_icdfcentralrK   r6   	transformstandardizedri   r7   	normalize)NNT)reset_cacher  r  rb  rQ  r.  r   r   r   r   r   )r   r\   r  r  r   rf   varre  s   `      @r1   r   r   X  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 	KK>"""KK>"""KK>"""1a[[ . .kk!Y|k<<aK!k!^44	6 	6 	6 	6A~&&&aK---- ++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aCa@@@@ac2222$122  	 rB   r   r   )r6   r7   
dist_shape)r8   rK   rZ  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   rK   r   r   )axisF)r   g{Gz?)r>   r   r   r   r)   r   r   r   	GeneratorrQ  r   r   r:   sum)r   r  r   rZ  r  r   num_parametersr   nsample_sizesample_array_shaper\  r3   	statisticpvaluep_thresholdnum_pvaluesnum_small_pvaluess                     r1   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8rB   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rS  r   )r   _parameterizationsupdate
parametersr>   onesrc  boolitemsr/   r,   r=   r   r@   _invalid)r   r   r  parameterizationr  namevalue	parameterr#   r$   
a_included
b_includedvalids                r1   rP  rP    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]+++rB   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)  rK   )r>   r  rc  r  zerosr,   r   r  r=   rQ  intisnan)r   r   r  
valid_argsendpoint_argsoutside_argsnan_argsr#   r$   r  r  insideonoutsiderW  s                  r1   r~  r~     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##rB   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>.Testr3   rQ   N)r   r   r   r   r   r   r   rB   r1   Testr  =  s(        "N3{{}}===			rB   r  z`The `Test` distribution family does not accept parameters, but parameters `{'a'}` were provided.r'   rK   r#   zAAttribute `tol` of `Test` must be a positive float, if specified.r  r2  r)  zEArgument `order` of `Test.moment` must be a finite, positive integer.z2Argument `kind` of `Test.moment` must be one of...r6   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crQ   rb   r3   N)
r   r   r   r   r   _p1_p2r   r  r   r   rB   r1   Test2r  Z  sr        nS777nS777//S99:"N3{{}}===			rB   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  rb   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*   
ValueErrorr>   r  rW  r  r   r   r+   objectr   )r  r0   r  r   s       r1   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)  r6   r4   r"   rK  r   r   )	r-   r   r   pickleloadsdumpsr   r>   r9  )kwargsdist1dist2dist3r:  r;  res3s          r1   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$$,rB   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*   rk  r   r  r   r>   r9  r  r  )r.   r   r0   r   cached_meanquadrature_means         r1   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'   g      )r   r   r  r  r   r  r  gGz?r   )r   r   r)   r*   r  r  r>   rW  r   r   absr   )
r.   r3   r   r0   X1X2rf   r:  r;  r   s
             r1   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   rK   r"   r6   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	incorrectr   )r.   r   r  s      r1   r+  zATestAttributes.test_iv_policy.<locals>.MyUniform._entropy_formula      "{rB   c                     dS r  r   )r.   r  r,  s      r1   _moment_raw_formulazDTestAttributes.test_iv_policy.<locals>.MyUniform._moment_raw_formula  r  rB   N)r   r   r   r+  r  r   rB   r1   	MyUniformr     s2        # # ## # # # #rB   r  r  r  )r  r  z/Attribute `validation_policy` of `MyUniform`...r'   r   )
r   r   r  r>   r  r   r  r)   r*   r  )r.   r   r#   r$   r  r0   s         r1   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 )NrK   r6   mur4  r7   r   r4   )r   r   r  r4  r)   r*   AttributeError)r.   r   Ys      r1   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  r   rB   r1   r  r    sQ        &* &* &*P1 1 1<, , ,>    rB   r  c                   t    e Zd Zej                            d ee                    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}ddh}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'          |                                |||           t'          |                                |||           ||vr%t'          |                                |||           ||vr't'          |                    d           |||           t'          |                    |          |                    |          |           t'          |                    |          |                    |          |           t'          |                    |          |                    |          |           t'          |                    |          |                    |          |           ||	vr8t'          |                    |          |                    |          |           t'          |                     |          |!                    |          |           t'          |"                    |          |#                    |          |           t'          |$                    |          |%                    |          |           tM          d!          D ]U}||
                    |i           vr;t'          |'                    |d"#          |'                    |          ||           VtM          d$d%          D ]J}||vrDt'          |'                    |d&#          |                    d|dz
                     ||           Kd'}t'          |                    d|          |(                    dt          j                            |          (          |           d d d            d S # 1 swxY w Y   d S )*Nr   >   argusksonekstwokappa4exponpowgenexpongompertz	exponweib	johnsonsb	kstwobign	powernormhalfgennormpowerlognormrecipinvgaussvonmises_linestudentized_rangeSCIPY_XSLOW0zSkipping as XSLOW>   vonmiseslevy_stablegh㈵>)r  r  r  pearson3r  r  >   chir  r  r  invgammar  >   triangarcsine	trapezoid
skewcauchy>   levyalphalevy_l
foldcauchy
halfcauchyparetor(  r5   rt   rK   l   s4XF r4   rQ  r   gHz>r  r   r   mvskr  )r  re  excessr  ri   r  r  r7   r8   r  l   1XS+- )r:   random_stater   ))r  osenvironrv   r)   r   r  r   rF   r-   zipsplitr>   r   r   make_distributionr   r   r   r   ra  r   r   r   r   r   r   r   r   r   r   logsfr   sfr   ppfr   isfr  r  rvs)r.   r   distdatadistnamer   custom_tolerancesskip_entropyskip_skewnessskip_kurtosisskip_logccdfskip_rawskip_standardizedr   r,  r   CustomDistributionr   r  r3   r   r  re  mvskr  r   s                               r1   test_make_distributionz+TestMakeDistribution.test_make_distribution
  s   A;T T T 2:>>-5566 	-8t;K;KK+,,, 
 
 
 F '+T::#Z0#W-8 8 8G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[(;;; !	' !	'JAq!QAIIKK555|++		QYY[[tDDDDAHHJJ

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

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

h
 ? ?%)6 6 6 6AHHQKK!4@@@@AEE!HHaeeAhhT::::AHHQKK!4@@@@AEE!HHaeeAhhT::::|++		!aggajjtDDDDAFF1IIqttAwwT::::AFF1IIquuQxxd;;;;AGGAJJat<<<<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"DAHH24H88EEr	8M8Md8S8SETT!%' ' ' '?!	' !	' !	' !	' !	' !	' !	' !	' !	' !	' !	' !	' !	' !	' !	' !	' !	' !	's   1P<V::V>V>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.z4The argument must be an instance of `rv_continuous`.)	r)   r*   rk  r   r;  r%  r$  r  r  r.   r0   s     r1   r  z*TestMakeDistribution.test_input_validationT  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 I]: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_namesr6   r  zGamma(a=2.0)2zGamma(a=np.float64(2.0))Gamma)betazHalfGeneralizedNormal(beta=2.0)z+HalfGeneralizedNormal(beta=np.float64(2.0))HalfGeneralizedNormal)(scipy.stats._distribution_infrastructurerS  keyshasattrr   r;  gammark   r>   __version__repr__doc__r  )r.   rS  r   s      r1   test_repr_str_docsz'TestMakeDistribution.test_repr_str_docsa  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6rB   N)r   r   r   r)   r   r   	enumerater   rO  r  r_  r   rB   r1   r  r  	  sm        []IIh,?,?@@G' G' A@G'R. . .7 7 7 7 7rB   r  c                   t   e Zd Zd Zej                            d           e ej	                     ej
        d                    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          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,' r7   rK   )lbubr7   r4   r6  rw        ?rM  rN  r7   r4   )'r>   r   r   minimummaximumr   truncater   	truncnormr@  r   r   r   r   r   r   r>  r   r   r  r   sqrtr   r   ra  r   r   r=  r   r   r?  r   r   r   r<  r}  r   r   r9  )	r.   r   rf  rg  r  Y0r   r   r   s	            r1   test_truncatezTestTransforms.test_truncatev  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4rB   r4   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 )N)r*  __init__r   )r.   r   r  r.  s      r1   rv  zATestTransforms.test_loc_scale.<locals>.TransformedNormal.__init__  s6      !1!1CDCCCFCCCCCrB   )r   r   r   rv  r/  r0  s   @r1   TransformedNormalrt    sA        D D D D D D D D DrB   rw  )rK   r   r   r   rK   )r   rE   )locscaler   r   r6   rj  ri   r  r  r  )'r>   r   r   r   r   rx  ry  r   r   normra  r   r   rl  r   r   r   r   r   r   r   r   signr   r   r   r   r   r   r   r   r}  r   r   r   r  r  r  rc  )r.   rI   r   r   rw  r   r   r3   r   r   r   r\   r   r   rx  ry  dist0dist_refx0y0r#   r$   a0b0r   zs                             r1   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ri   exp_powrl  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 )Nrd  re  rl  )ry  rh  ri  rj  rM  rN  r7      M [ r   )%r>   r   r   r   r   rl  elognormr@  r   r   r   r   r   r   r>  r   r   r  r   ro  r   r   ra  r   r   r=  r   r   r?  r   r   r   r<  r}  r   r   )r.   r  r   r  r4  r   r  rp  r   r   r   s              r1   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GrB   ry  )rK   r6   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 )Nrd  re  r  r   rh  r3  r   r   r  r   )r>   r   r   r{  r  r   r;  r(  r   r   r   r   r   r   r   r   ra  r   r   r   r   r   r   r   r   r}  r   )r.   ry  r   r#   r{  InvGammarp  r   r  r   r   r   r   s                r1   test_reciprocalzTestTransforms.test_reciprocal&  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 )Nrd  re  r  rh  ri  rj  rM  rN  r7   r   )r   r  r   )$r>   r   r   r   r   loggammar   r@  r   r   r   r   r   r>  r   r   r  r   ro  r   r   ra  r   r   r=  r   r   r?  r   r   r   r<  r   r}  r   r   )	r.   r   r#   r   rp  r  r   r   r   s	            r1   test_logzTestTransforms.test_logQ  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 )NrK   r6   r"   zUniform(a=1.0, b=2.0)zlog(rs   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...rj        ?z=Raising a random variable to the power of an argument is onlyr   )r   rk   r   r   rl  r)   r*   rk  )r.   r   X_strr0   s       r1   test_monotonic_transformsz(TestTransforms.test_monotonic_transformss  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(\?r7   d   r"   )r>   r   r   r   r   r   r   r   )	r.   r   r#   r$   rx  ry  r3   r  r   s	            r1   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":":;;;;;rB   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 )Nrd  re  rh  ri  rw  rj  rM  rN  r7   r4   r   )%r>   r   r   r   r  r   foldnormr@  r   r   r   r   r   r   r>  r   r   r  r   ro  r   r   ra  r   r   r=  r   r   r?  r   r   r   r<  r}  r   r   r9  )r.   r   rx  r  rp  r   r   r   s           r1   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!!!!!!!rB   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 )Nr6   )r  rK   )r   r;  weibull_minr  r   r   r   r   r   r   r   )r.   Weibullr   r  s       r1   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		*****rB   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 )Nrd  r6   rK   )dfr4   ri  rw  ri  r  rM  rN  r7   r   )$r>   r   r   r   r   chi2r@  r   r   r   r   r   r   r   r   r  r   ro  r   r   ra  r   r   r=  r   r>  r   r?  r   r   r   r<  r}  r   r   r9  )r.   r   r  rp  r   r   r   s          r1   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!!!!!!!rB   N)r   r   r   rq  r)   r   rE  r   r   rI   r   r  r   r  xfail_on_32bitr  r  r  r  r  r  r  r   rB   r1   rb  rb  s  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< < <$" " "@+ + +" " " " "rB   rb  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   rK   r"   ri   r7   )r  rrh  ri  rM  rf  rv  rN  rj  r  r  r   r   r   r   z0`r` and `n` must contain only positive integers.r'   r)  r  )&r>   r   r   r   r  r   order_statisticrV  r@  r   r   rl  r   r   r   r   r  r   r   r   r>  ra  r   r   r   r   r   r   r   r<  r   r}  r   r   r?  r)   r*   r  )
r.   r   r   r  r  r  rp  r   r   r0   s
             r1   test_order_statisticz'TestOrderStatistic.test_order_statistic  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 )Nri   r6   r7   r  r  )r   r;  r   r  r   ra  )r.   r   r   r  Zs        r1   test_support_gh22037z'TestOrderStatistic.test_support_gh22037   sk     )%-88GIIaC!G!!qA...		QYY[[11111rB   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)  rK   r7   r8   ri   g333333ӿr   r  r"   )
r   r;  rz  rn  rm  r  r>   rR  r   r   )r.   r   TruncatedNormalr#   r$   r  r  r3   r  Y1Z1r  Z2s                r1   test_composition_gh22037z+TestOrderStatistic.test_composition_gh22037*  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8rB   N)	r   r   r   r)   r   rE  r  r  r  r   rB   r1   r  r    s]        [2(1 (1 (1T2 2 29 9 9 9 9rB   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*   rk  r   r@   r,   __str__r.   s    r1   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*   rk  r   validater  s    r1   test_ParameterzTestFullCoverage.test_ParameterG  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)  rK   r3   rQ   rj  g      @r  r  TF)r   r   r>   r  r  r   )	r.   r  r  r/   r  r3   arrrS  r  s	            r1   "test_RealParameter_uncommon_dtypesz3TestFullCoverage.test_RealParameter_uncommon_dtypesK  s     W%%"3v666	JSz222%..q2.FFUES!	!!!!UT5M*****rB   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>.TestDistr3   )r   r   r%   rQ   c                     dS )Nr   r   r.   r3   r   r  s       r1   _logpdf_formulaz^TestFullCoverage.test_ContinuousDistribution_set_invalid_nan.<locals>.TestDist._logpdf_formula_  s    qrB   N)r   r   r   r   r   r   r  r   rB   r1   TestDistr  ]  sD        &s;;3R3R3RSSSI    rB   r  rj  r  )r   r>   float32rT  r  r   rS  )r.   r  r   rS  r3   s        r1   +test_ContinuousDistribution_set_invalid_nanz<TestFullCoverage.test_ContinuousDistribution_set_invalid_nanX  s    
	 	 	 	 	- 	 	 	
 HJJ
JuE***xx{{ E))))))rB   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   rK   )r   r>   float64maxfinfoint64iinfor  s    r1   test_fiinfozTestFullCoverage.test_fiinfoh  sn    rz"~~&&*bhrz.B.B.FFFFFrx{{##'28BH+=+=+AAAAAAArB   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   )r.   msgs     r1   test_generate_domain_supportz-TestFullCoverage.test_generate_domain_supportl  sb    &~663s::::&v..-4444&{33.#555555rB   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   rK   r"   rT  zUniform(a=0.0, b=1.0)z-Uniform(a=np.float64(0.0), b=np.float64(1.0))r7   r6   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)r8   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   r>   r\  r]  r  r  r  )r.   r   s     r1   #test_ContinuousDistribution__repr__z4TestFullCoverage.test_ContinuousDistribution__repr__v  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
 
 
 
 
 
rB   N)r   r   r   r  r  r)   r   r   r>   float16int16r  r  r  r  r  r  r   rB   r1   r  r  <  s        " " "* * * [6 "
BJ7 ""*578 8+ +8 8+* * * B B B6 6 6
 
 
 
 
rB   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   rK   r"   r   r   r)  r
  i  r   r  rT  z#numpy 1.x didn't have dtype in repr)reason)marksr6   r  r7   r8   ri   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  rl  r   r  rm  )r   r   )r   r4   i  r3  )numpyr  r  scipy.statsr  rl  r   r  rm  r   r   scipy.stats._new_distributionsr   rZ   r]  r   r   rS  )r.   r   r  r  r  rl  r   r  rm  r   r   r   new_distr^  r_  s                  r1   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&&&}------rB   c                 J    t          t          |                    dk     sJ d S )N   )lenr]  )r.   r   s     r1   test_not_too_longzTestReprs.test_not_too_long  s'    $ 4::$$$$$$rB   N)!r   r   r   r   Ur>   r  Vr   r   r  r  r  r)   r   r   r  paramskipifr\  r  r  r   r  rm  r   r  rl  r   r  fullaranger  r   rB   r1   r  r    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	
 % % % % %rB   r  c                   \    e Zd Z ed eej         ej        f                    Zd ZdS )	MixedDistr3   r%   rQ   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皙?皙?r6         g      ?333333??rj  )r>   ro  r?   rl  r  s       r1   _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rB   N)	r   r   r   r   r   r>   r   r   r  r   rB   r1   r  r    sT        s;;26'26AR+S+S+STTTIT T T T TrB   r  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...r2  z5All elements of `components` must have scalar shapes.rK   r6   )r  z5`components` and `weights` must have the same length.rj  r  z)`weights` must have floating point dtype.z`weights` must sum to 1.0.r   z#All `weights` must be non-negative.r  r  )r)   r*   r  r   r   rQ  s     r1   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&rQ  r   )r4   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-@      пr  r
  rj  r  r  r  r  c                 p    dk    rt          j        |           sJ t          j        j        | |fi | d S )Nr   )r>   rU  rR  r   )rc   rf   r  rQ  s      r1   r   z/TestMixture.test_basic.<locals>.assert_allclose  sE    {{{3'''''J&sC::6:::::rB   )r  r  r  ri   r  rf  rv  )r4   r   ri   r   g?)!r>   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r}  r   r   r   r  r  r   rQ  r   ks_1sampravelr  )
r.   rQ  r   r   r  r3   r   r  r  r   s
    `        r1   
test_basiczTestMixture.test_basic  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======rB   c                 J   d}t          j        t           j                  } ||          }t          j        || f          }t	          j        ddd          }t          |                    |          t          j        |                              |                     d S )Nr  r  r8   r@  )	r   r;  r[  r   r>   rX   r   r   dgamma)r.   r#   rU  r   r  r3   s         r1   test_default_weightsz TestMixture.test_default_weights1  s    '44EAJJJM1qb'""KAs##a%,"3"3"3"7"7":":;;;;;rB   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 )Nr   r  r
  rj  r  r  r  r4   rK   r   )r   r   r)   r*   r  
componentsr  )r.   r  r  r   s       r1   test_propertieszTestMixture.test_properties9  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Rr4   r9   )r>   r   r   r   r;  cauchyr   rR  r   r   r   r}  r   )r.   r   CauchyX0r   r   s         r1   test_inversezTestMixture.test_inverseK  s    i##$;<<(66VXXM2r(##JJBJ

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

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

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

""1::a=="++a..AAAAArB   N)r   r   r   r  r)   r   r   r  r	  r  r  r   rB   r1   r  r    s        ? ? ?B [Wr5k22)> )> 32)>V< < <* * *$B B B B BrB   r  )r   )Mr7  r  rj  r   r  r>   r   r)   numpy.testingr   r   
hypothesisr   r   r	   r
   hypothesis.extra.numpyextrarT   scipyr   scipy.stats._fitr   scipy.stats._ksstatsr   r  r   scipy.stats._distr_paramsr   rX  r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r    r   rF  r   r   r   r   r   r   rb  r   r   r   r   r   r  r   Sobolr  rP  r~  r  r  r  r  rb  r  r  r  r  r  r   rB   r1   <module>r     se   				                   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 ' ' ' ' ' ' ' 'd6 d6 d6 d6 d6 d6 d6 d6N"N "N "N "NL 
	z! z! z! z! z! z! z! z!x' ' '>" " "4$ 4$ 4$l)$ )$ )$X$ $ $2HG HG HGVn n n| 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g7 g7 g7 g7 g7 g7 g7 g7T" " " " " " " "B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rB   