
    
g2             
          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jr                  ju                  de,f      ejr                  ju                  d e;       dg      ejr                  ju                  d e;       dg      ejr                  ju                  dd g      ejr                  ju                  d!ejx                  jz                  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      ZLy)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                  j                  d      Zd Zej                  j                  dej                  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                  j                  dej                   ej                  dddfdg      d        Zej                  j                   e ej0                   ej2                  d       ej4                  d       ej6                   eej<                                     ej0                   ej2                  d       ej4                  d       ej6                   eej<                                     ej(                          ej(                               d               Zd Z y)Test_RealDomainl   @x	 c                     t        d      }d}t        j                  t        |      5  |j	                  t
               d d d        y # 1 sw Y   y xY w)Nab	endpointsz0The endpoints of the distribution are defined...match)r   pytestraises	TypeErrorget_numerical_endpointsdict)selfdomainmessages      ^/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/scipy/stats/tests/test_continuous.pytest_ivzTest_RealDomain.test_iv   sB    z2D]]9G4 	1**40	1 	1 	1s   A		Ax
            )sizec                     t         j                   t         j                  }}t        ||fd      }t	        |j                  |      ||k  ||k  z         y )N)FTr&   	inclusive)npr   pir   r   contains)r.   r3   r#   r$   r/   s        r1   test_contains_simplez$Test_RealDomain.test_contains_simple#   sG     w11v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      }|j                  t        j                  t        j                         ||
            }|j                  t        j                  t        j                         ||            }||z
  }t        j                  t        j                  ||z
  |d      t        j                  ||d      t        j                  |||z   d      g      }t        d	||f
      }|j                  t        dt                     t        dt                            |j                  |t        ||	            }|rdnd}|rdnd}t        d| d| d      }t        ||       y )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.   rE   rF   rG   rH   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
E%$%6
IIdkk$"6"6"8")J@ AIIdkk$"6"6"8")J@ A ENNBKK!Q3KK1b1KK1Q335 6 z(3['AC  KM!J!/KM!J	L ooaQ0 #.$3#.4CS)3C2DCHIS#rA   caseFTz(-\infty, \pi])r#      TFz[a, 5)c                 P    t        |d d |dd       }t        |      |d   k(  sJ y )Nr6   r8   r;   )r   str)r.   rg   r/   s      r1   test_strzTest_RealDomain.test_strX   s2    
 tBQx4!9E6{d1g%%%rA   )rK   L)whitelist_categories)r#   r$   rF   rG   c                     t         j                  j                  ||      }t         j                  j                  ||      }|rdnd}|rdnd}t        ||f||f      }| | d| | }t	        |      |k(  sJ y )N[(])r;   , )r   symbolsgetr   rj   )	r.   r#   r$   rF   rG   left_bracketright_bracketr/   re   s	            r1   	test_str2zTest_RealDomain.test_str2`   s     OO1%OO1%)ss*1v(3['ACqcA3}o66{c!!!rA   c                 h    t        d      }t        d      }|j                  |j                  usJ y )Nr   rJ   r%   )r   rt   )r.   domain1domain2s      r1   test_symbols_gh22137z$Test_RealDomain.test_symbols_gh22137x   s.     //goo555rA   N)!__name__
__module____qualname__r=   randomdefault_rngrngr2   r)   markparametrizeuniformr   r>   r@   slowr   rS   mutually_broadcastable_shapesr   booleansrH   rf   rk   one_ofdecimals
characterssampled_fromlistr   rt   rx   r}    rA   r1   r    r       s   
))


0C1 [[S3;;r2I;#F$&FF7BEE#3 4=4= [[
4$44AN*z**,*z**,
!#&	# 
&P [[V
&&"%%&78'& &	& [[
Z
e,
37
W__ 568 Z
e,
37
W__ 568 +z**,*z**,

"
 
"6rA   r    c                    | j                         }|dkD  ry|j                  t        j                  d|dz
              }| j	                  |      }|j                  t        j                  ||            \  }}	| j                  ||||      }
n| j                  |      }
t               }	|j                  t        j                  |	|            }|
j                  j                  ||
j                  ||d	      }t        j                  ||	      }|j                  t        j                  ||            }|
j                  j                  ||
j                  ||d	      }t        j                  ||      }t        d
d      }t        d|      }|j                  |||      }t        j                   dd      5  t        j"                  |      }d d d        |
||||	||fS # 1 sw Y   xY w)Nr   rJ   )rN   rB   )r   proportionsi_parameterizationr   )rD   typical)parameter_valuesr   r   regionrz   TTprP   )r   r   ignoredivideinvalid)_num_parameterizationsrR   r   integers_num_parametersrS   r   _drawtuplebroadcastable_shapes	_variable_parametersr=   broadcast_shapesr   r   errstatelog)familyrH   r   r   rD   n_parameterizationsin_parametersrE   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QIIj))!7J17LMN--a0#yy..,8@B C ||F/0  2 |||$w ii11,;CE FGGd6F6F(3Y 	 	PA((,?Nii11.;CE FGGd6F6F(3Y 	 	PA))'>BO6<0H3x0E

7
=A	Hh	7 vvay Aq$noMM s   ;G##G,c                      e Zd Zej                  j                  d       ed      ej                  j                  de       e	 e
j                          e
j                  d            d                             Zej                  j                  d	      ej                  j                  de      ej                  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                  j                  d)dd g      d*        Zej                  j                  d)dd g      d+        Zd, Zd- Zd. Zej                  j                  d)ddg      d/        Zy)0TestDistributions<      )max_examplesr   r   rM   rH   seedc                    t         j                  j                  |      }d}t        ||||      }|\  }}}	}
}}}}|j	                  t        j                  ddd            }t        j                  dd      5  t        |       t        ||       t        |d|||       t        j                  d|	      }t        |d|||       d d d        y # 1 sw Y   y xY w)
Nffffff?皙?r   r   r   r   )min_dimsrD   max_sider   r   r   samplerJ   ra   r   )r=   r   r   r   rR   rS   array_shapesr   check_supportcheck_moment_funcscheck_sample_shape_NaNsr   Halton)r.   r   rH   r   r   r   tmpr   r3   r   r   r   r[   r   r   sample_shapeqrngs                    r1   test_support_moments_samplez-TestDistributions.test_support_moments_sample   s    
 ii##D) ++FD#{KMPJaAt\>?yy!2!2A<>"@ A [[(; 	V$t\2#D(L,PST::,D#D(L,PTU	V 	V 	Vs   9A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           	         |t         k(  r|dk(  rt        j                  d       t        j                  j                  |      }d}t        ||||      }	|	\  }
}}}}}}}|||d}t        j                  ddd      5  |t        |
|d ||       n||v rt        |
|||   ||       d d d        |dk(  r+t        |
j                         dz  |
j                                t        j                  ddd      5  t        |
t              sQ|d	k(  r$d
h}t        |
d||||       t        |
d||||       n(|dk(  r#dh}t        |
d||||       t        |
d||||       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)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   rH   r   funcmethodsargr   r   r   r   r3   r   r   r   r[   r   r   argss                      r1   
test_funcszTestDistributions.test_funcs   s   . WKKABii##D) ++FD#{KMPJaAt\>?Q*[[(J 	P{dD,HdDI~wO		P :D335q8$--/J [[(J 		Ld$=>5=+nGtUAq/7KtT1a'JV^)lGeQ?GLdAq/7K		L 		L	P 	P		L 		Ls   <)E 5A"E, E),E5c                     	 dd l m} t        dd      }|j	                         }||j                         k(  sJ y # t        $ r Y y w xY w)Nr                 ?r"   )matplotlib.pyplotpyplotImportErrorr   plotgca)r.   pltXaxs       r1   	test_plotzTestDistributions.test_plot   sI    	+ bBVVXSWWY  		s   ; 	AAmethod_namec                 T   t        j                         }d|_        t        j                  ddg      }t        ||      }t        |d|z         } ||d      } ||d      } ||d      }t        |d	   |d	          |d
   |d
   k7  sJ t        |d
   |d
   |j                         y )N-q=-C6?MbP?r   formulamethodcomplement_safer   rJ   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    LLNJJd|$q+&3{?+!I&!-.!L)RUBqE"!u1~~1qt!%%0rA   c                 L   t        j                         }d|_        t        j                  ddg      }t        ||      }t        |d|z         } ||d      } ||d      }t        |d   |d          |d	   |d	   k7  sJ t         ||d	         |d	   |j                  
       y )Nr  r  r  r   r	  r  r   rJ   r   r
  r  )r.   r  r   r   r   r  x1x2s           r1   test_icomplement_safez'TestDistributions.test_icomplement_safe  s    LLNJJd|$q+&3{?+1./1\*RUBqE"!u1~~RUQqT6rA   c                 ,   t        j                         }d|_        g d}g d}|j                  ||d      }|j                  ||d      }|j                  ||d      }t	        ||       t        |||j                         t        j                  g d	      }t        j                  g d
      }|j                  d      ||z
  z  }|j                  ||d      }|j                  ||d      }t	        |d       t        |||j                         y )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    LLN UU1aU-UU1a 2U3UU1aU.RBQUU+ JJ=>JJ<=UU1Xqs^UU1a 2U3UU1aU.RBQUU+rA   c                     G d dt         j                        } |g d      }t        j                  d      5  |j	                  d      }|j	                  d	      }d d d        |j	                  d
      }ddg}t        j
                  |         j                         sJ d   |d   k(  sJ t        ||   ||          y # 1 sw Y   gxY w)Nc                        e Zd Z fdZ xZS )7TestDistributions.test_logentropy_safe.<locals>._Normalc                 |    t        j                  t        |   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  s9    jj!9!CF!CDA&&B
rA   )r~   r   r   r*  __classcell__r-  s   @r1   _Normalr&  7  s     rA   r0  rJ   r6   r7   sigmar   r   logexp_safer  logexpr   r   r(  rJ   )r   r   r=   r   r   isinfallr   )r.   r0  r   res1res2re   i_fls          r1   test_logentropy_safez&TestDistributions.test_logentropy_safe5  s    	ell 	 )$[[) 	1<<}<5D<<x<0D	1 ll,l/2wxxT
#'')))Aw$q'!!! 	T$ZT+	1 	1s   %CCc                    t        j                  g d      }g d}g d}t        j                  d      5  |j	                  ||d      }|j	                  ||d	      }d d d        |j	                  ||d
      }ddg}t        j
                  |         j                         sJ d   |d   k(  sJ t        ||   ||          y # 1 sw Y   ixY w)Nr1  r2  )rJ   ,  )ir6   -  r   r4  r5  r  r6  r   r   r(  rJ   )r   r   r=   r   r   r7  r8  r   )r.   r   r3   r   r9  r:  re   r;  s           r1   test_logcdf2_safez#TestDistributions.test_logcdf2_safeJ  s    LLy)[[) 	388Aq87D88Aq82D	3 hhq!Lh12wxxT
#'')))Aw$q'!!! 	T$ZT+	3 	3s   )CCc                 \   t        j                  d      }|dk(  rddgnddg}t        ||      }t        j                  d      5   ||d	
      } ||d
      }d d d         ||d
      }d   |d   k(  sJ |d   d   k7  sJ |d   |d   k(  sJ |d   |d   k7  sJ y # 1 sw Y   HxY w)Nr6   r2  r   r>  rJ   r@  r   r4  r5  r  r6  r   r   )r   r   r  r=   r   )r.   r  r   r3   r   r9  r:  re   s           r1   test_logexp_safez"TestDistributions.test_logexp_safeZ  s     LLq!$0T1IsAhq+&[[) 	,-0D(+D	, 1\*Aw#a&   Aw$q'!!!Aw$q'!!!Aw#a&   	, 	,s   B""B+)r~   r   r   r)   r   	fail_slowr
   r   familiesr   r   rH   r   r   r   r   r  r  r#  r<  rA  rC  r   rA   r1   r   r      sc   [[22[[Xx0

!(;
(;(;a(HIV J 1  V" [[2[[Xx0[[1(9l*CTJ+i-FM'&48%'7>%y$7)G9d;)G9d;)G9d;$yk37')c:')PRUV$&MsS(*QSVW%'NPST)L++FO&{(CSI !$ 2

!(;
(;(;a(HIL J %! 1 ,LB [[]UFO<1 =1 [[]UFO<
7 =
7,,,*,  [[]Xy,AB! C!rA   r   c                 ,   ||z   }|dk(  r| j                   }dh}| j                  d| d      r+t        |t        j                        s|j                  d       |D ]5  } |||      }	t        j                  t        |       |	j                        }
t        |	j                  |       t        j                  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        ||       8 y )	Nr   inverse_transform__formular  )r  r   r   *   )r   
_overridesr   r   	QMCEngineaddr=   broadcast_toget_valid_parametersshaper   testingdtype_dtypeisscalarr8  isfinitenananyequal)r   fnamer   r[   r   
full_shapesample_methodr   r  rb   valid_parameterssample1sample2s                r1   r   r   i  sO   ,J"#G5'*+JsCMM4RI 'LSA??+?+E+.996SYY
+


		4;;7
 ;;s###vvbkk#&6"78999S**+RVV4VDVD66"((30111Wg&''rA   c                 :   | j                         \  }}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 y )Nsupport)r`  check_nans_and_edgesrP  _shaperR  rS  )r   r#   r$   s      r1   r   r     s    <<>DAqy$2y$277dkk!!!77dkk!!!77dkk!!!77dkk!!!rA   c                 @   |
t               n|f}|j                         }d|v r4t        j                  t              5   t        | |      |ddi d d d         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}| j                  d| d      r|j                  d       t        j                  j                  |j                  |       |t               k(  rt        j                  |      sJ |D ]  } t        | |      |d|i}	d|v rHt        j                  j                  t        j                  |	      t        j                  |      fi | n!t        j                  j                  |	|fi | t        j                  j                  |	j                   |j                          t        j                  j                  |	j                  |       |t               k(  st        j                  |	      rJ  y # 1 sw Y   xY w)Nr   r  atolV瞯<>   r   logmeanr   logskewness>   r   ư>>   r   r  gH׊>rH  rI  r  r   )r   copyr)   r*   NotImplementedErrorr  ra  rK  rM  r=   rQ  r   rP  rT  r   exprR  )
r   rY  r   r[   r   r   re   tol_overrider  rb   s
             r1   r   r     s    k57vDllnG' ]]./ 	8 GD% $7w7	8 '$

%Cuc3/ E?L>>	(	 ~	*	~5'*+IJJCII|4 uw{{3 $"gdE"D88E>JJ&&rvvc{BFF3K 7)57 JJ&&sC@<@ 	

		3995


		<857";;s###$7	8 	8s   HHc                 x   |j                         }|r| j                  d      r|j                  d       | j                  d      s| j                  d      r|j                  d       | j                  d      s| j                  d      r|j                  d       n| j                  d	      r|j                  d       | j                  d      s| j                  d      r|j                  d       | j                  d      s| j                  d      r|j                  d       | j                  |      | j                  |      z
  }t        j
                  j                  |j                  |       |t               k(  rt	        j                  |      sJ |D ]   }|r't	        j                  | j                  |||
            n| j                  |||
      }t        j
                  j                  ||d       |r8t        j
                  j                  |j                  |dz   j                         n4t        j
                  j                  |j                  |j                         t        j
                  j                  |j                  |       |t               k(  s
t	        j                  |      r!J  y )N_logcdf2_formular  _logcdf_formula_logccdf_formular  _cdf_formula_ccdf_formular   _cdf2_formular  +=rd                  )ri  rK  rM  r   r=   rQ  r   rP  r   rT  rk  r   r   rR  	r   r   r3   r   r[   r   re   r  rb   s	            r1   r   r     s    llnG
??-.KK	"??,-AS1TKK&OON+???3KK	"???+KK	"??>*dooo.NKK&OO-.??#56KK	"
((1+
#CJJCII|4uw{{3 
$;>rvvdkk!Qvk67HHQ&H1 	


""3%"8JJ##CIIb/?/?@JJ##CIIsyy9


		<857";;s###
$rA   c                 ,   |j                         }| j                  d|rdnd d      r|j                  d       | j                  |      | j	                  |      z   }t
        j                  j                  |j                  |       |t               k(  rt        j                  |      sJ |D ]  }|r't        j                  | j                  |||            n| j	                  |||      }t
        j                  j                  ||d       t
        j                  j                  |j                  |j                         t
        j                  j                  |j                  |       |t               k(  st        j                  |      rJ  y )	NrH  r    ccdf2_formular  r  rt  ru  )ri  rK  rM  r   r   r=   rQ  r   rP  r   rT  rk  r   r   rR  rw  s	            r1   r   r     s/    llnGC5R0>?I
((1+		!
$CJJCII|4uw{{3 $<?rvvdll1al78IIa6I2 	


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


		3995


		<857";;s###$rA   c                 h   t        |       }|dv rt        dd      }n/|dv rt        t         dfd      }n| j                  j                  }t        | ||      }t        j                  |g| ^}}|\  }}}	}
||z  }t        ||    t        j                         t        ||
   t        j                         | 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                          nN|d
v rFt        ||   d       t        ||   d       t        ||| z     d       t        ||| z     d       n|dv rHt        ||   t                t        ||   d       t        ||   t                t        ||   d       n|dv r>t        ||   d       t        ||   d       t        ||   d       t        ||   d       nv|dv rHt        ||   d       t        ||   t                t        ||   d       t        ||   t                n*|dv r=t        ||   d       t        ||   d       t        ||   d       t        ||   d       n|dv rqt        ||	dk(     t        j                         t        ||	dk(     t        j                         t        ||dk(     ||dk(            t        ||dk(     ||dk(            nt|dv rpt        ||	dk(     t        j                         t        ||	dk(     t        j                         t        ||dk(     ||dk(            t        ||dk(     ||dk(            |dvr/t        j                  |||dk(  z           j                         sJ y y )N>   r   r   rz   r   r;   >   ilogcdfr   r   r(  rJ   >   r   >   r   >   r   >   r   >   r   >   r   >   r   r|  >   r   r   >   r   rf  r`  r   rg  )rO  r   r   r   r/   classify_argr=   broadcast_arraysr   rV  r`  rN  rP  rU  r8  )r   rY  r   rb   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   ra  ra    sM   +D1!! 6\J
	)	) SD!9M
^^**
"4j9O)+)<)<=M *O>M*O&4C1I|[',,I &&'0Wrvv&<<>DAq
399%A
399%A$*.>>#q(,<<&",0@@%*.>> 
S*+bffW5S)*RVVG4S+yj89BFF7CS*iZ78266'B	'	S*+Q/S)*A.S+yj891=S*iZ78!<	*	S*+cT2S)*A.S+,sd3S*+Q/	'	S*+Q/S)*A.S+,a0S*+Q/	+	S*+Q/S)*SD1S+,a0S*+cT2	(	S*+Q/S)*A.S+,a0S*+Q/	%	%S*+RVV4S)*BFF3S+,a0B.CDS*+Q|q/@-AB	'	'S*+RVV4S)*BFF3S+,a0B.CDS*+Q|q/@-ABMM{{3yLA,=>?@DDFFF NrA   c                 x    dd fd	} fd} j                          t        d      D ]  } ||ddd	        j                  |dd
      }t         dd |       |j                  |k(  sJ  ||dd|d	        ||dd| ||d      	        ||dd||dk(  	        j
                  t        j                  k(  s ||dd|d	         j                           j                  dd        j                  dd       t        dd      D ]R  } j                  |dd
      } ||dd| ||d      xs	  ||d      	        j                  |d        ||dd|       T  j                          t        d      D ]  } ||ddd	        j                  |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      xs |dk  	        ||d      r։ j                  |d        ||dd|         j                           j                  dd        j                  dd        j                  dd       t        dd      D ]G  } j                  |dd
      } ||dd| ||d      	        j                  |d        ||dd|       I  j                  ddd
      } j                          t        d      D ]k  } ||ddd	        j                  |dd
      ||dz  z  z  }|j                  |k(  sJ  ||dd| ||d      	        ||dd||dk  	        ||dd|       m t         t              ry y )Ng&.>Tc                    |rDj                  | ||      }t        ||d| z  z         |j                  |j                  k(  sJ y t        j                  t
              5  j                  | ||       d d d        y # 1 sw Y   y xY w)Nr  r4   ru  )momentr   rP  r)   r*   rj  )orderkindr  re   successrb   rd  r   s         r1   checkz!check_moment_funcs.<locals>.check`  sx    ++eT&+9CC4E	>:99		)))23 8E478 8 8s   !A??Bc           	          d| d}j                  |      }|syt        |      }t        |dt        t        d                  }| |v S )N_moment_rI  Forders   )rK  r  setrange)r  r  formula_name	overridesr  r  r   s         r1   has_formulaz'check_moment_funcs.<locals>.has_formulai  sQ    !$x0OOL1	$-(CaM:rA   r  rawr   F)r  r   r  r  r  generalr   quadrature_icdfcentralrJ   r6   	transformstandardizedrh   r7   	normalize)NNT)reset_cacher  r  ra  rP  r-  r   r   r   r   r   )r   r[   r  r  r   re   varrd  s   `      @r1   r   r   X  s    D8 	 1X 	Ba/kk!U<k8T8T37yyL(((awT2a	3Au0EFa	3a9>>U\\)!U-sDA	B 	 	KK9KK91a[ *kk!U<k8aS!!Y/Q;q.3Q	SAy!aS)* 	 1X 2aGU3kk!Y|k<yyL(((aGS$7aIsK94MNaIsAF;>>U\\)!Y 13E%--/AF !YS%a/;AF=1e$KK5!!YS1#2& 	 	KK>"KK>"KK>"1a[ .kk!Y|k<aK!!^4	6A~&aK-. ++a<+
8C1X 3a%8kk!Y|k<sq1u~MyyL(((aC!!^4	6aCa@ac23 $12 	 3rA   r   r   )r6   r7   
dist_shape)r8   rJ   rY  r   rng_typec                 0   t         j                  j                  d      }| j                         }|r|dk(  rt	        j
                  d       | j                  ||      }d}|f|z   }	|	|z   }
|dk(  r|j                  }|t         j                  j                  k7  r
 |d|      } |	|      }|j                  |
k(  sJ t        ||d	      }t        |j                  d   |d
      }d}|j                  }t        j                  ||k        }|||z  k  sJ y )Nl   MLy r   z3Distribution can't have a shape without parameters.i   r   rJ   r   r   )axisF)r   g{Gz?)r=   r   r   r   r)   r   r   r   	GeneratorrP  r   r   r9   sum)r   r  r   rY  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    s    ))


0C++-Nn)IJ<<
C(DA$.K$z1299&&&%ks+A77(((( $D!!4IQWWQZ6FK++Kv34{[8888rA   c                 4   | j                   }i }| j                  D ]  }|j                  |j                          t	        j
                  | j                  t              }|j                         D ]  \  }}||vr||   }|j                  j                  |      \  }}	|j                  j                  \  }
}|
r||k  n||k  }||r||	k  n||	k  z  }t        ||j                  j                  ||             ||z  } t        | | j                         |S )NrR  r   )r   _parameterizationsupdate
parametersr=   onesrb  boolitemsr/   r,   r<   r   r?   _invalid)r   r   r  parameterizationr  namevalue	parameterr#   r$   
a_included
b_includedvalids                r1   rO  rO    s4    ''J 33 7*5567 40I'--/ ez!t$	
 77- 8 /1!*!1!1!;!;
J *eE	%1*:UI,,55$4 6 6 	7 	U	#* )T]]+rA   c                 (   |t        j                  | j                  t              }t        j                  | j                  t              }t        j                  | j                  t              }t        j                  | j                  t              }||||fS |j                  | 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(  rJ   )r=   r  rb  r  zerosr,   r   r~  r<   rP  intisnan)r   r   r  
valid_argsendpoint_argsoutside_argsnan_argsr#   r$   r  r  insideonoutsiderV  s                  r1   r}  r}     se   
{WWT[[5
D9xx4888DKKt4=,@@--)) . +DAq ##Aq#.IAq#'11J
%a3h1s7F
JsaxC!G3F	!''	%BBqCxLBqCxLhhqwwc*G57GS1W256GQWc2
((3-C2w##rA   c                      G d dt               } d}t        j                  t        |      5   | d       d d d        d}t        j                  t        |      5   | t	        j
                  g              d d d        t        j                  t        |      5   | g d	       d d d        t        j                  t        |      5   | t        j                         d d d        t        j                  t        |      5   | d
       d d d        d}t        j                  t        |      5   |        j                  d
       d d d        t        j                  t        |      5   |        j                  t        j                         d d d        d}t        j                  t        |      5   |        j                  dd       d d d         G d dt               }d}t        j                  t        |      5   |d       d d d        d}t        j                  t        |      5   |        d d d        d}t        j                  t        |      5   |ddgg d	       d d d        d}t        j                  t        |      5   |g d	g d	      }|j                  ddg       d d d        d}t        j                  t        |      5   |dt               gddg       d d d        d}t        j                  t        |      5   |g d	g d	      }|j                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ixY w# 1 sw Y   :xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   }xY w# 1 sw Y   VxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nc                   *    e Zd Z ed e             Zy)#test_input_validation.<locals>.Testr3   rP   N)r~   r   r   r   r   r   r   rA   r1   Testr  =  s    "3{}=	rA   r  z`The `Test` distribution family does not accept parameters, but parameters `{'a'}` were provided.r'   rJ   r#   zAAttribute `tol` of `Test` must be a positive float, if specified.r  r1  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                   z    e Zd Z ed e             Z ed e             Z eee      gZ ed e             Z	y)$test_input_validation.<locals>.Test2crP   ra   r3   N)
r~   r   r   r   r   _p1_p2r   r  r   r   rA   r1   Test2r  Z  s<    S7S7/S9:"3{}=	rA   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  ra   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  rV  r  r   r   r+   objectr   )r  r0   r  r   s       r1   test_input_validationr  <  s   >% >7G	z	1 q RG	z	1 !B !	z	1 	z	1 	z	1 +G	z	1 b	z	1 bff CG	z	1 )ai()>& >FG	z	1 
 G	z	1 LG	z	1 %A)$%?G	z	1 yI.!Q 5G	y	0 )FH!Q() MG	z	1 ,yI.+, ,q ! !   
  ) ) 
 
% %
 
) ), ,s   
MMMM*
M75N/%N9N
N+5N8"O"OO!O+MMM'*M47NNNN(+N58OOOO(+O4c                  :   t        ddgd      } t        di | }t        |      }t        j                  t        j
                  |            }|j                         |j                         |j                         }}}t        j                  ||k7        sJ t        j                  ||k7        sJ |j                  d      |j                  d      |j                  d      }}}t        j                  ||k(        sJ t        j                  ||k(        sJ y )Nr(  r6   r4   r"   rJ  r   r   )	r-   r   r   pickleloadsdumpsr   r=   r8  )kwargsdist1dist2dist3r9  r:  res3s          r1   test_rng_deepcopy_pickler    s    RGr"FfEUOELLe,-E||~u||~u||~$D66$$,66$$,|||+U\\b\-A5<<TV<CW$D66$$,66$$,rA   c                   $    e Zd Zd Zd Zd Zd Zy)TestAttributesc                    t        d      }d}t        j                  t        |      5  |j	                  d       d d d        |j	                         }t        j                  t        |      5  |j	                  d       d d d        d |_        t        j                  t        |      5  |j	                  d       d d d        |j	                         }|j	                  d      }t        ||       |j	                  d      }|j	                  d      }t        ||       t        j                  ||k(        rJ d|_        |j	                  d      }|j	                  d      }t        ||       t        j                  ||k(        rJ |j                          t        j                  t        |      5  |j	                  d       d d d        d	}t        j                  t        |      5  d
|_        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   axY w# 1 sw Y   ^xY w# 1 sw Y   y xY w)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*   rj  r   r  r   r=   r8  r  r  )r.   r   r0   r   cached_meanquadrature_means         r1   test_cache_policyz TestAttributes.test_cache_policy  s   :6X]].g> 	&IIWI%	&yy{]].g> 	&IIWI%	& !]].g> 	&IIWI%	&yy{iiwi/[$' ))<)8iiwi/[/266$/1222 'yy	y*iiwi/[/266$/1222]].g> 	&IIWI%	& D]]:W5 	* )D	* 	*C	& 	&	& 	&
	& 	&*	& 	&	* 	*s;   H0H-H<H,4H8HHH),H58Ic                 Z   d}t        j                         }d}t        j                  t        |      5  d|_        d d d        t        j                  t        |      5  d|_        d d d        t        j                  t        |      5  t        j                  |_        d d d        t        j                  d      }t        j                  d      }|j                  |      }|j                  |d	
      }|j                  |d	
      }t        |||j
                         t        |||j
                         t        ||z
        t        ||z
        kD  sJ d}	|j
                  |j
                  c|_        |_        |j                  |	      }|j                  |	d
      }|j                  |	d
      }t        |||j
                         t        |||j
                         t        ||z
        t        ||z
        kD  sJ y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)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=   rV  r   r   absr   )
r.   r3   r   r0   X1X2re   r9  r:  r   s
             r1   test_tolzTestAttributes.test_tol  s   LLN?]]:W5 	AE	]]:W5 	AE	]]:W5 	FFAE	 \\d#\\e$eeAhvvav-vvav-c/c/4#:TCZ000ffQiwwqw-wwqw-c/c/4#:TCZ000/	 		 		 	s#   HH
H HH H*c                 l   t        dd      }|j                  d      dk(  sJ d|_        |j                  t        j                  d            dk(  sJ t        j                  d      t        j                  d      }}t        ||d	      }|j                  t        j                  d            d
k(  sJ  G d dt               } |||d	      }|j                         dk(  sJ |j                  dd
      dk(  sJ d}t        j                  t        |      5  d|_        d d d        y # 1 sw Y   y xY w)Nr   rJ   r"   r6   skip_all       @r   r   )r#   r$   validation_policyr(  c                       e Zd Zd Zd Zy)0TestAttributes.test_iv_policy.<locals>.MyUniformc                      yN	incorrectr   )r.   r   r  s      r1   r*  zATestAttributes.test_iv_policy.<locals>.MyUniform._entropy_formula      "rA   c                      yr  r   )r.   r  r+  s      r1   _moment_raw_formulazDTestAttributes.test_iv_policy.<locals>.MyUniform._moment_raw_formula  r  rA   N)r~   r   r   r*  r  r   rA   r1   	MyUniformr    s    ##rA   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uuQx1}}(uuRZZ^$))) zz"~rzz"~1a1
;uuRZZ^$***	# 	# Q*=yy{k))) xxU"x-<<< D]]:W5 	,"+A	, 	, 	,s   D**D3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        d|j                  d<   |j                  d   dk(  sJ y # 1 sw Y   -xY w)NrJ   r6   mur3  r7   r   r4   )r   r   r
  r3  r)   r*   AttributeError)r.   r   Ys      r1   test_shapeszTestAttributes.test_shapes  s    LLAQ'LLQCq) ttqyyww!||ttAw!||wwqzQ ]]>* 	AD	 QttAw!||	 	s   CCN)r~   r   r   r  r  r  r  r   rA   r1   r  r    s    &*P1<,>rA   r  c                   h    e Zd Zej                  j                  d ee            d        Zd Z	d Z
y)TestMakeDistributionzi, distdatac           
      	   |d   }h d}t        t        j                  j                  dd            s||v rt	        j
                  d       |dv ry 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                  r1t        t        |j                  j                  d      |d               ni }t        j                  j                  d      }t        j                  |      } |d)i |} |d)i |}|j!                  d|      }|j#                  |      }|j                  |d      }d}t        j$                  dd      5  |j                  d      \  }}}}t'        |j)                         |j)                                ||vr*t'        |j+                         |j+                         |       t'        |j-                         |j-                         |       t'        |j/                         |||       t'        |j1                         |||       ||vrt'        |j3                         |||       ||vrt'        |j5                  d       |||       t'        |j7                  |      |j7                  |      |       t'        |j9                  |      |j9                  |      |       t'        |j;                  |      |j;                  |      |       t'        |j#                  |      |j#                  |      |       ||	vr,t'        |j=                  |      |j?                  |      |       t'        |jA                  |      |jC                  |      |       t'        |jE                  |      |jG                  |      |       t'        |jI                  |      |jK                  |      |       tM        d!      D ]F  }||
j                  |i       vst'        |jO                  |d"#      |jO                  |      ||       H tM        d$d%      D ]<  }||vst'        |jO                  |d&#      |j                  d|dz
           ||       > d'}t'        |j!                  d|      |jQ                  dt        j                  j                  |      (      |       d d d        y # 1 sw Y   y xY w)*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   rs   rJ   l   s4XF r4   rP  r   gHz>r  r   r   mvskr
  )r  rd  excessr  rh   r  r  r7   r8   r  l   1XS+- )r9   random_stater   ))r  osenvironru   r)   r   r  r   rE   r-   zipsplitr=   r   r   make_distributionr   r   r   r   r`  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  rd  mvskr  r   s                               r1   test_make_distributionz+TestMakeDistribution.test_make_distribution
  s   A;T 2::>>-568t;KKK+, 
 
  '+T:#Z0#W-8GN z"|% (1uh'DHKKc$++++D18A;?@UWii##$45"44T:((N6NHH23H'EE!H $$Xt4[[(; !	'JAq!QAIIK5|+		QYY[tDAHHJ
>AFFHad>AJJL!$TB},

adF},

h
 ?%)6AHHQK!4@AEE!HaeeAhT:AHHQK!4@AEE!HaeeAhT:|+		!aggajtDAFF1IqttAwT:AFF1IquuQxd;AGGAJat<q K8<<r#::#AHHUH$?$%HHUO$TKK q! T#44#AHHUH$H$%GGF57O$<4dTT #DAHH24H8EEr		8M8Md8SET!%'?!	' !	' !	's   JS2AS7BSSc                    d}t        j                  t        |      5  t        j                  t        j
                         d d d        d}t        j                  t        |      5  t        j                  t        j                         d d d        d}t        j                  t        |      5  t        j                  t                      d d d        y # 1 sw Y   xY w# 1 sw Y   YxY w# 1 sw Y   y xY w)Nz`levy_stable` is not supported.r'   z`vonmises` is not supported.z4The argument must be an instance of `rv_continuous`.)	r)   r*   rj  r   r:  r$  r#  r  r  r.   r0   s     r1   r  z*TestMakeDistribution.test_input_validationT  s    3]].g> 	7##E$5$56	7 1]].g> 	4##ENN3	4 I]]:W5 	.##FH-	. 	.	7 	7	4 	4	. 	.s#   $C'$C#0C/C #C,/C8c                 .   ddl m} |j                         D ]  }t        t        |      r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 y )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_infrastructurerR  keyshasattrr   r:  gammarj   r=   __version__repr__doc__r  )r.   rR  r   s      r1   test_repr_str_docsz'TestMakeDistribution.test_repr_str_docsa  s    P',,. 	(D5$'''	( &&u{{34!9~///>>S q	?&@@@@$,,&&&&&u'8'894Q< $EEEE>>S !%)VVVV&$,,666rA   N)r~   r   r   r)   r   r   	enumerater   rN  r  r^  r   rA   r1   r  r  	  s8    [[]Ih,?@G' AG'R.7rA   r  c                   R   e Zd Zd Zej
                  j                  d       e ej                          ej                  d            d               Zej
                  j                  d      ej
                  j                  dd	d
g      d               Zej
                  j                  d      ej
                  j                  dg d      ej
                  j                  d      d                      Zej
                  j                  d      d        Zd Zd Zd Zd Zd Zy)TestTransformsc                    t         j                  j                  d      }|j                  d      }|j                  d      }t        j                  ||      t        j                  ||      }}t        j                  t               ||      }t        j                  ||      }|j                  d|      }|j                  |      }t        |j                         t        j                  |j                         dz                t        |j                         |j                                t        |j                         |j!                  d             t        |j#                         |j#                                t        |j%                         |j'                                t        |j)                         t        j*                  |j'                                      t        |j-                         |j                  d             t        |j/                         |j                  d	      d
z          t        |j1                         |j1                                t        |j3                  |      |j3                  |             t        |j                  |      |j                  |             t        |j5                  |      |j7                  |             t        |j9                  |      |j!                  |             t        |j;                  |      |j=                  |             t        |j?                  |      |j?                  |             t        |jA                  |      |jA                  |             t        |jC                  |      |jE                  |             t        |jG                  t        j                  |            |j!                  |             t        |jI                  t        j                  |            |j=                  |             |jK                  d      }t        jL                  ||kD  ||k  z        sJ y )N   b2,' r7   rJ   )lbubr7   r4   r5  rv        ?rL  rM  r7   r4   )'r=   r   r   minimummaximumr   truncater   	truncnormr?  r   r   r   r   r   r   r=  r   r   r  r   sqrtr   r   r`  r   r   r<  r   r   r>  r   r   r   r;  r|  r   r   r8  )	r.   r   re  rf  r  Y0r   r   r   s	            r1   test_truncatezTestTransforms.test_truncatev  s   ii##N3ZZZZB#RZZB%7BNN68r2__R$FF7F-FF1Irzz|b/@(AB		RZZ\2
BFF3K0"''),

bffh/,,.0AB

bhhsm4

bhhsma&78		RZZ\2a"&&),a"&&),q	2558,q	266!9-
BFF1I.RYYq\2RYYq\2		!bhhqk2		"&&),bffQi8

266!9-rvvay9"vvv{v{3444rA   r4   r   r   r   c           	         t         j                  j                  |      } G d dt              }t	        |||dd      }|\  }}}}	}
}}}|j
                  }|j                  }t               }t        j                  ||      }||z
  |z  }||z
  |z  }|j                         \  }}|j                         \  }}t        |||z          t        |||z          t        j                  dd      5  t        t        j                  |j                               |j                                t        |j                         |j                                t        |j!                         |j!                         |z          t        |j#                         |j#                         |z          t        |j%                         |j%                         |z          t        |j'                         |j'                         |d	z  z         t        |j)                         |j'                         d
z         t        |j+                         |j+                         t        j,                  |      z         t        |j/                         |j/                                t        |j1                  |      |j1                  |      t        j2                  |      z
         t        |j5                  |      |j5                  |      |z         t        |j7                  |      |j7                  |             t        |j9                  |      |j9                  |             t        |j;                  |      |j;                  |             t        |j=                  |      |j=                  |             t        |j7                  ||      |j7                  ||             t        |j9                  ||      |j9                  ||             t        |j;                  ||      |j;                  ||             t        |j=                  ||      |j=                  ||             t        |j?                  |
      |j?                  |
      |z  |z          t        |jA                  |	      |jA                  |	      |z  |z          t        |jC                  |
      |jC                  |
      |z  |z          t        |jE                  |	      |jE                  |	      |z  |z          tG        dd      D ]  }t        |jI                  |d      |jI                  |             t        |jI                  |d      |jI                  |d      ||z  z         t        |jI                  |d      |jI                  |d      t        j,                  |      |z  z          	 d d d        |d	|z  z
  |z   }||d	z  z  |z  }t        jJ                  |jL                        }|j                         \  }}|j                         \  }}t        |||z          t        |||z          t        j                  dd      5  t        |j                         |j                         |z          t        |j                         |j                         |z          t        |j!                         |j!                         |z          t        |j#                         |j#                         |z          t        |j%                         |j%                         |z          t        |j'                         |j'                         |z          t        |j)                         |j)                         |z          t        |j+                         |j+                         |z          t        |j/                         |j/                         |z          t        |j1                  |      |j1                  |      |z          t        |j5                  |      |j5                  |      |z          t        |j7                  |      |j7                  |      |z          t        |j9                  |      |j9                  |      |z          t        |j;                  |      |j;                  |      |z          t        |j=                  |      |j=                  |      |z          t        |j?                  |
      |j?                  |
      |z          t        |jA                  |	      |jA                  |	      |z          t        |jC                  |
      |jC                  |
      |z          t        |jE                  |	      |jE                  |	      |z          tG        dd      D ]  }t        |jI                  |d      |jI                  |d             t        |jI                  |d      |jI                  |d             t        |jI                  |d      |jI                  |d              	 d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nc                        e Zd Z fdZ xZS )8TestTransforms.test_loc_scale.<locals>.TransformedNormalc                 <    t        |   t               g|i | y )N)r)  __init__r   )r.   r   r  r-  s      r1   ru  zATestTransforms.test_loc_scale.<locals>.TransformedNormal.__init__  s     !1CDCFCrA   )r~   r   r   ru  r.  r/  s   @r1   TransformedNormalrs    s    D DrA   rv  )rJ   r   r   r   rJ   )r   rD   )locscaler   r   r6   ri  rh   r  r  r  )'r=   r   r   r   r   rw  rx  r   r   normr`  r   r   rk  r   r   r   r   r   r   r   r   signr   r   r   r   r   r   r   r   r|  r   r   r   r  r  r  rb  )r.   rH   r   r   rv  r   r   r3   r   r   r   r[   r   r   rw  rx  dist0dist_refx0y0r#   r$   a0b0r   zs                             r1   test_loc_scalezTestTransforms.test_loc_scale  s    ii##D)	D 9 	D ,tSlQPMPJaAt\>?hh

 ::#U3#g#g||~1B28$28$[[(; 	UBFF4??#45t||~FDLLNH,<,<,>?DKKM5<<>C+?@DIIK);<DIIK);<DMMOU^^-=q-HID335t}}7KLDMMOU^^-=-NODMMOU^^-=>DKKNELL,<rvve},LMDHHQK2)>?DKKNELL,<=DHHQK27DLLOU]]2->?DIIaL%**R.9DKK1-u||B/CDDHHQNEIIb",=>DLLA.b"0EFDIIaOUZZB-?@DLL.d0CE0IC0OPDIIaL%**Q-*=*CDDMM$/1Ee1Kc1QRDJJqM5;;q>%+?#+EF1a[ UAu 5xq7IJAy 9 %Q	 :UAX EGA~ > %Q ?"''%.RSBS SU	U1	UB qu#E1H}u$HHT[[!||~1B26"26"[[(; 	ADOO-u/?/?/AA/EFDLLNEMMOa,?@DKKM5<<>A+=>DIIK)9:DIIK)9:DMMOU^^-=-ABD335u7O7O7QTU7UVDMMOU^^-=-ABDMMOU^^-=-ABDKKNELLOA,=>DHHQK1)9:DKKNELLOa,?@DHHQK1)9:DLLOU]]1-=-ABDIIaL%**Q-!*;<DLL.d0Ca0GHDIIaL%**Q-!*;<DMM$/1E1IJDJJqM5;;q>A+=>1a[ AAu 5u||Au7MNAy 95<<9;UVA~ > %Q ?AA)	A 	AU	U 	UT	A 	As   .Si#Oiiirh   exp_powrk  powc                    t         j                  j                  d      }|j                  d      }|j                  d      }t               |z  |z   }|dk(  rt	        j
                  |      }nt         j                  |z  }t	        j                  |t        j
                  |            }|j                  d|      }|j                  |      }	t        |j                         t        j                  |j                                      t        |j                         |j                                t        |j                         |j                  d             t        |j!                         |j!                                t        |j#                         |j%                                t        |j'                         t        j(                  |j%                                      t        |j+                         |j	                  d             t        |j-                         |j	                  d	      d
z          t        |j/                         |j/                                t        |j1                  |      |j1                  |             t        |j                  |      |j                  |             t        |j3                  |      |j5                  |             t        |j7                  |	      |j                  |	             t        |j9                  |	      |j;                  |	             t        |j=                  |      |j=                  |             t        |j?                  |      |j?                  |             t        |jA                  |      |jC                  |             t        |jE                  t        j                  |	            |j                  |	             t        |jG                  t        j                  |	            |j;                  |	             d}
t        |jI                  |
      t        j
                  |jI                  |
                   y )Nrc  rd  rk  )rx  rg  rh  ri  rL  rM  r7      M [ r   )%r=   r   r   r   r   rk  elognormr?  r   r   r   r   r   r   r=  r   r   r  r   rn  r   r   r`  r   r   r<  r   r   r>  r   r   r   r;  r|  r   r   )r.   r  r   r
  r3  r   r  ro  r   r   r   s              r1   test_exp_powzTestTransforms.test_exp_pow  s    ii##N3ZZ

6"HUNRe		!A	A]]5r
3FF7F-FF1Irzz|(<=		RZZ\2
BFF3K0"''),

bffh/,,.0AB

bhhsm4

bhhsma&78		RZZ\2a"&&),a"&&),q	2558,q	266!9-
BFF1I.RYYq\2RYYq\2		!bhhqk2		"&&),bffQi8

266!9-rvvay9T*BFF18883E,FGrA   rx  )rJ   r6   r(  z/`scale=-1` fails on 32-bit; needs investigationc                 (   t         j                  j                  d      }|j                  d      }t        j                  |      t	        |      }}t        j                  t
        j                        }||z   ||      z  }|dkD  rt        |      nt        |       }||z  }|j                  d|      }	|j                  |	      }
t        j                  |
      }t        |j                         t        j                  |j                                      t        |j                         |j                                t        |j                         |j                                t        |j!                         |j!                                t        |j#                  |	      |j#                  |	             t        |j                  |	      |j                  |	             t        |j%                  |	      |j%                  |	             t        |j'                  |
      |j'                  |
             t        |j)                  |
      |j)                  |
             t        |j+                  |	      |j+                  |	             t        |j-                  |	      |j-                  |	             t        |j/                  |	      |j/                  |	             t        j0                  dd      5  t        |j3                  |      |j3                  |             t        |j5                  |      |j5                  |             d d d        d	}t        |j                  |
      ||j                  |
      z         y # 1 sw Y   ;xY w)Nrc  rd  r  r   rg  r2  r   r   r  r   )r=   r   r   rz  r  r   r:  r'  r   r   r   r   r   r   r   r   r`  r   r   r   r   r   r   r   r   r|  r   )r.   rx  r   r#   rz  InvGammaro  r   r  r   r   r   r   s                r1   test_reciprocalzTestTransforms.test_reciprocal&  sn    ii##N3JJv
 ggenc%je **5>>:E\HqM)  !8FQK&1+AIIIGI-FF1Ivvayrzz|(<=		RZZ\2
BIIK0		RZZ\2a"&&),a"&&),q	2771:.q	2771:.
BHHQK0RYYq\2RYYq\2		!bjjm4[[(; 	AAIIdORZZ-=>AJJt,bkk$.?@	A T*E18883E,FG		A 	As   9ANNc                    t         j                  j                  d      }|j                  d      }t        |      }t	        j
                  |      }t	        j                  |      }|j                  d|      }|j                  |      }t        |j                         t        j                  |j                                      t        |j                         |j                                t        |j                         |j                  d             t        |j                         |j                                t        |j                         |j!                                t        |j#                         t        j$                  |j!                                      t        |j'                         |j	                  d             t        |j)                         |j	                  d      d	z          t        |j+                         |j+                                t        |j-                  |      |j-                  |             t        |j                  |      |j                  |             t        |j/                  |      |j1                  |             t        |j3                  |      |j                  |             t        |j5                  |      |j7                  |             t        |j9                  |      |j9                  |             t        |j;                  |      |j;                  |             t        |j=                  |      |j?                  |             t        j@                  d
      5  t        |jC                  t        j                  |            |j                  |             t        |jE                  t        j                  |            |j7                  |             d d d        d}t        |jG                  |      t        j                  |jG                  |                   y # 1 sw Y   KxY w)Nrc  rd  r  rg  rh  ri  rL  rM  r7   r   )r   r  r   )$r=   r   r   r   r   loggammar   r?  r   r   r   r   r   r=  r   r   r  r   rn  r   r   r`  r   r   r<  r   r   r>  r   r   r   r;  r   r|  r   r   )	r.   r   r#   r   ro  r  r   r   r   s	            r1   test_logzTestTransforms.test_logQ  s   ii##N3JJvQK^^AIIaLFF7F-FF1Irzz|(<=		RZZ\2
BFF3K0"''),

bffh/,,.0AB

bhhsm4

bhhsma&78		RZZ\2a"&&),a"&&),q	2558,q	266!9-
BFF1I.RYYq\2RYYq\2		!bhhqk2[[* 	>AIIbffQi0"&&)<AJJrvvay1266!9=	> T*BFF18883E,FG		> 	>s   A;Q

Q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        d}t        j                  t        |      5  t        j                  |       d d d        d}t        j                  t        |      5  d|z   d d d        t        j                  t        |      5  d|z   d d d        t        j                  t        |      5  ddg|z   d d d        d}t        j                  t        |      5  |dz   d d d        t        j                  t        |      5  |dz   d d d        t        j                  t        |      5  |ddgz   d d d        y # 1 sw Y   DxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)NrJ   r6   r"   zUniform(a=1.0, b=2.0)zlog(rr   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...ri        ?z=Raising a random variable to the power of an argument is onlyr   )r   rj   r   r   rk  r)   r*   rj  )r.   r   X_strr0   s       r1   test_monotonic_transformsz(TestTransforms.test_monotonic_transformss  s    a1'599Q< d5'O3331q5zs5'^+++599Q< d5'O333bAQ]].g> 	E	V]].g> 	IIaL	T]].g> 	AI	]].g> 	F	]].g> 	#J!O	 R]].g> 	"I	]].g> 	F	]].g> 	#sO	 	%	 		 		 		 		 		 		 		 	s`   G'
G4H.HHH%-H1H='G14G>H
HH"%H.1H:=Ic                 h   t         j                  j                  d      }d\  }}}}|j                  ddd      }t	        ||      }||z  |z   }t        |j                  |      |j                  ||z
  |z               |||z  z   }t        |j                  |      |j                  ||z
  |z               ||z  |z
  }t        |j                  |      |j                  ||z   |z               |t	        ||      |z  z
  }t        |j                  |      |j                  | |z   |z               y )Nl   lO[5 )g7A`?gq=
ףp?g=
ףp=?g(\?r7   d   r"   )r=   r   r   r   r   r   r   r   )	r.   r   r#   r$   rw  rx  r3   r  r   s	            r1   test_arithmetic_operatorsz(TestTransforms.test_arithmetic_operators  s   ii##$7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":;rA   c                 .   t         j                  j                  d      }|j                  d      }t        j                  t               |z         }t        j                  |      }|j                  d|      }|j                  |      }t        |j                         t        j                  |j                         dz                t        |j                         |j                                t        |j                         |j                  d             t        |j                         |j                                t        |j!                         |j#                                t        |j%                         t        j&                  |j#                                      t        |j)                         |j                  d             t        |j+                         |j                  d      d	z          t        |j-                         |j-                                t        |j/                  |      |j/                  |             t        |j                  |      |j                  |             t        |j1                  |      |j3                  |             t        |j5                  |      |j                  |             t        |j7                  |      |j9                  |             t        |j;                  |      |j;                  |             t        |j=                  |      |j=                  |             t        |j?                  |      |jA                  |             t        |jC                  t        j                  |            |j                  |             t        |jE                  t        j                  |            |j9                  |             |jG                  d
      }t        jH                  |dkD        sJ y )Nrc  rd  rg  rh  rv  ri  rL  rM  r7   r4   r   )%r=   r   r   r   r  r   foldnormr?  r   r   r   r   r   r   r=  r   r   r  r   rn  r   r   r`  r   r   r<  r   r   r>  r   r   r   r;  r|  r   r   r8  )r.   r   rw  r  ro  r   r   r   s           r1   test_abszTestTransforms.test_abs  s   ii##N3jj IIfhn%^^C FF7F-FF1Irzz|b/@(AB		RZZ\2
BFF3K0"''),

bffh/,,.0AB

bhhsm4

bhhsma&78		RZZ\2a"&&),a"&&),q	2558,q	266!9-
BFF1I.RYYq\2RYYq\2		!bhhqk2		"&&),bffQi8

266!9-rvvay9"vvfqj!!!rA   c                 l   t        j                  t         j                        } |d      }t        |       }t	        |j                  d      |j                  d             t	        |j                  d      |j                  d             t	        |j                  d      |j                  d             t	        |j                  d      |j                  d             t	        |j                  d      |j                  d             t	        |j                  d      |j                  d             y )Nr6   )r  rJ   )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     ))%*;*;<aLGQXXa[!((1+.QUU1XquuQx(QXXa[!((1+.QUU1XquuQx(QYYq\199Q<0QVVAYq	*rA   c                    t         j                  j                  d      }t               dz  }t	        j
                  d      }|j                  d|      }|j                  |      }t        |j                         t        j                  |j                         dz         d	       t        |j                         |j                         d	       t        |j                         |j                                t        |j                         |j                                t        |j                         |j                                t        |j!                         t        j"                  |j                                      t        |j%                         |j	                  d
             t        |j'                         |j	                  d      dz          t        |j)                         |j)                                t        |j+                  |      |j+                  |             t        |j                  |      |j                  |             t        |j-                  |      |j/                  |             t        |j1                  |      |j3                  |             t        |j5                  |      |j7                  |             t        |j9                  |      |j9                  |             t        |j;                  |      |j;                  |             t        |j=                  |      |j?                  |             t        |jA                  t        j                  |            |j3                  |             t        |jC                  t        j                  |            |j7                  |             |jE                  d      }t        jF                  |dkD        sJ y )Nrc  r6   rJ   )dfr4   rh  rv  rh  r
  rL  rM  r7   r   )$r=   r   r   r   r   chi2r?  r   r   r   r   r   r   r   r   r  r   rn  r   r   r`  r   r   r<  r   r=  r   r>  r   r   r   r;  r|  r   r   r8  )r.   r   r  ro  r   r   r   s          r1   test_powzTestTransforms.test_pow  st   ii##N3HaKZZ1FF2CF(FF1Irzz|b/@(AM		RZZ\=
BIIK0"''),

bffh/,,.0AB

bhhsm4

bhhsma&78		RZZ\2a"&&),a"&&),q	2558,q	266!9-
BFF1I.RYYq\2RYYq\2		!bhhqk2		"&&),bffQi8

266!9-rvvay9"vvfqj!!!rA   N)r~   r   r   rp  r)   r   rD  r   r   rH   r   r  r   r  xfail_on_32bitr  r  r  r  r  r  r  r   rA   r1   ra  ra  s  s3    5D [[2

!(;
(;(;a(HI[A J [AH [[1[[Y7#H 8 #HL [[2[[Wj1[[ QR&H S 2 &HP [[1H HB D<$"@+"rA   ra  c                   Z    e Zd Zej                  j                  d      d        Zd Zd Zy)TestOrderStatisticr   c                 P
   t         j                  j                  d      }t        dd      }d}t        j                  dgdgdgg      }t        j                  |||      }t        j                  ||dz   |z
        }|j                  d|	      }|j                  |      }t        t        j                  |j                               |j                                t        |j                         |j                                t        |j                         |j                                t        |j                         |j!                                t        |j#                         |j                  d
      d       t        |j%                         |j                  d      dz   d       t        |j'                         |j)                  d             t        |j+                         |j+                                t        |j-                  |      |j-                  |             t        |j                  |d      |j                  |d             t        |j/                  |d      |j/                  |d             t        |j1                  |d      |j1                  |d             t        |j3                  |d      |j3                  |d             t        |j5                  |      |j5                  |             t        |j7                  |      |j7                  |             t        |j9                  |      |j;                  |             t        j<                  dd      5  t        |j?                  t        j@                  |            |j)                  |             t        |jC                  t        j@                  |            |jE                  |             d d d        d}	tG        jH                  tJ        |	      5  t        j                  ||d       d d d        tG        jH                  tJ        |	      5  t        j                  |d|       d d d        tG        jH                  tJ        |	      5  t        j                  ||d       d d d        tG        jH                  tJ        |	      5  t        j                  |d|       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   jxY w# 1 sw Y   y xY w)Nl   Cvu= r   rJ   r"   rh   r7   )r  rrg  rh  rL  re  ru  rM  ri  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_statisticrU  r?  r   r   rk  r   r   r   r   r  r   r   r   r=  r`  r   r   r   r   r   r   r   r;  r   r|  r   r   r>  r)   r*   r  )
r.   r   r   r  r  r  ro  r   r   r0   s
             r1   test_order_statisticz'TestOrderStatistic.test_order_statistic  s   ii##$45a1JJaS1#'!!!qA.ZZ1q519%FF7F-FF1I 	q||~.

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

bffh/

bhhsm%@

bhhsma&7eD
BFF3K0		RZZ\2a"&&),a	2AEE!LE4QRq3QVVAlV5STq3QVVAkV5RS)4aggag6TURYYq\2RYYq\2		!bhhqk2[[(; 	>AIIbffQi1266!9=AJJrvvay1266!9=	> E]]:W5 	0!!!qB/	0]]:W5 	0!!!rQ/	0]]:W5 	1!!!qC0	1]]:W5 	1!!!sa0	1 	1	> 	>
	0 	0	0 	0	1 	1	1 	1s=   6A;S,S8TT
T,S58TTTT%c                     t        j                  t         j                        } |       }|dz  dz   }t        j                  |dd      }t	        |j                         |j                                y )Nrh   r6   r7   r  r  )r   r:  r   r  r   r`  )r.   r   r   r  Zs        r1   test_support_gh22037z'TestOrderStatistic.test_support_gh22037   sV     ))%--8IaC!G!!!qA.		QYY[1rA   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                  j                  |
j                  |      |j                  |             y )Nr  r(  rJ   r7   r8   rh   g333333ӿr   r  r"   )
r   r:  ry  rm  rl  r  r=   rQ  r   r   )r.   r   TruncatedNormalr#   r$   r  r  r3   r  Y1Z1r  Z2s                r1   test_composition_gh22037z+TestOrderStatistic.test_composition_gh22037*  s    
 ((411%//BBx1A3*1fXwX^^B1%""2a0qA&""2a0


""266!9bffQi8rA   N)	r~   r   r   r)   r   rD  r  r  r  r   rA   r1   r  r    s.    [[2(1 (1T29rA   r  c                       e Zd Zd Zd Zej                  j                  dej                  ej                  fej                  ej                  fg      d        Zd Zd Zd Zd Zy	)
TestFullCoveragec                    t        j                  t              5  t        j                  d d       d d d        t        j                  t              5  t        j
                  d d       d d d        t        j                  t              5  t        j                  d        d d d        y # 1 sw Y   yxY w# 1 sw Y   MxY w# 1 sw Y   y xY wNr   )r)   r*   rj  r   r?   r,   __str__r.   s    r1   test_DomainzTestFullCoverage.test_Domain?  s    ]]./ 	'T2&	']]./ 	6++D"5	6]]./ 	"OOD!	" 	"		' 	'	6 	6	" 	"s#   B)B5
C)B25B>C
c                     t        j                  t              5  t        j                  d d       d d d        y # 1 sw Y   y xY wr  )r)   r*   rj  r   validater  s    r1   test_ParameterzTestFullCoverage.test_ParameterG  s4    ]]./ 	*b)	* 	* 	*s	   :A)dtype_in	dtype_outc                     t        d      }t        d|      }t        j                  ddg|      }|j	                  |i       \  }}}t        ||       ||k(  sJ t        |dd	g       y )
N)r(  rJ   r3   rP   ri  g      @r  r  TF)r   r   r=   r  r  r   )	r.   r  r  r/   r  r3   arrrR  r  s	            r1   "test_RealParameter_uncommon_dtypesz3TestFullCoverage.test_RealParameter_uncommon_dtypesK  sp     W%"3v6	JJSz2%..q2.FUES!	!!!UT5M*rA   c                      G d dt               } |       }t        j                  }||_        t        j                  dg|      }|j                  |      j                  |k(  sJ y )Nc                   4    e Zd Z ed ed            Zd Zy)NTestFullCoverage.test_ContinuousDistribution_set_invalid_nan.<locals>.TestDistr3   )r   r   r%   rP   c                      y)Nr   r   r.   r3   r   r  s       r1   _logpdf_formulaz^TestFullCoverage.test_ContinuousDistribution_set_invalid_nan.<locals>.TestDist._logpdf_formula_  s    rA   N)r~   r   r   r   r   r   r  r   rA   r1   TestDistr  ]  s    &s;3RSIrA   r  ri  r  )r   r=   float32rS  r  r   rR  )r.   r  r   rR  r3   s        r1   +test_ContinuousDistribution_set_invalid_nanz<TestFullCoverage.test_ContinuousDistribution_set_invalid_nanX  sV    
	- 	
 J

JJuE*xx{  E)))rA   c                 d   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 y )Nr   rJ   )r   r=   float64maxfinfoint64iinfor  s    r1   test_fiinfozTestFullCoverage.test_fiinfoh  sj    rzz"~&**bhhrzz.B.F.FFFFrxx{#''288BHH+=+A+AAAArA   c                     t        t              }d|v sJ t        t              }d|v sJ t        t              }d|v sJ y )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  sJ    &~63s:::&v.-444&{3.#555rA   c                 (   t        dd      }t        j                  dk  rt        |      dk(  sJ t        |      dk(  sJ t        j                  dk  rt        |dz  dz         d	k(  sJ 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 y )Nr   rJ   r"   rS  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  s    a1>>C755557MMMM>>C!a=$EEEE!a=%  
 bhhqkQ'AwCCCCbhhq

3rwwq

7STAw9
 	
 
rA   N)r~   r   r   r  r  r)   r   r   r=   float16int16r  r  r  r  r  r  r   rA   r1   r  r  <  sl    "* [[6 "

BJJ7 ""**578+8+* B6
rA   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                  j                  d	ee ej                   dd
g      z
   ej"                  eej                  j%                  ej&                  dk  d             ej"                   ej(                  dej                        ez   ej                  dej*                        z   ej                  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j0                  edd       ej2                  e	e
gddg       ee       ej6                  e       ej8                  dez          ej                   dd
g      ez   ej                   d
dg      z   g      d        Zej                  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j0                  edd       ej0                  e ej(                  d        ej(                  d             ej.                  e	 ej>                  dd      d      edz  dd ej6                  e      z   z  dez  g
      d        Z y)	TestReprsr   rJ   r"   r   r   r(  r	  i  r   r  rS  z#numpy 1.x didn't have dtype in repr)reason)marksr6   r  r7   r8   rh   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        |            }|j                  dd	      }|j                  dd	      }t!        ||       |j"                  |j"                  u sJ y )
Nr   )array)r  )r  rk  r   r  rl  )r   r   )r   r4   i  r2  )numpyr  r  scipy.statsr  rk  r   r  rl  r   r   scipy.stats._new_distributionsr   rY   r\  r   r   rR  )r.   r   r  r  r  rk  r   r  rl  r   r   r   new_distr]  r^  s                  r1   test_executablezTestReprs.test_executable  si    L 	 !HH/:T
#++BD+1///5Wg&}}---rA   c                 6    t        t        |            dk  sJ y )N   )lenr\  )r.   r   s     r1   test_not_too_longzTestReprs.test_not_too_long  s    $ 4:$$$rA   N)!r~   r   r   r   Ur=   r  Vr   r   r  r  r  r)   r   r   r  paramskipifr[  r  r  r   r  rl  r   r  rk  r   r  fullaranger  r   rA   r1   r  r    s   !qA*"**S/ZRZZ_5A"AA!1A("((4.*A[[#s$$FLLkk((NNS(@ )  FLL,Q.!2::1NNkk((NNS(@ )  aC!GqDqS1WqLqS1WqLqD!aLQK!E!!!qA.ENN1c3'EMM1a&3*5FEIIaLEIIa!eBHHc3Z "XRXXsCj%99=	
"F.G"F. [[BGGD#"S(!GgbggdC((BGGD#"S(ENN1b!$ENN1wrwwt}ngbggdm<!E!!!yryyD'9TBqD1yuyy|#$qD	
%%rA   r  c                   b    e Zd Z ed eej                   ej                  f            Zd Zy)	MixedDistr3   r%   rP   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??ri  )r=   rn  r>   rk  r  s       r1   _pdf_formulazMixedDist._pdf_formula  s    rwwqw//0266$4q?P:P3QQ3255!112RVVD1S5#+PQAQ<Q5RRS 	TrA   N)	r~   r   r   r   r   r=   r   r   r  r   rA   r1   r  r    s(    s;266'266AR+STITrA   r  c                   $    e Zd Zd Zd Zd Zd Zy)TestMixturec                    d}t        j                  t        |      5  t        g        d d d        d}t        j                  t        |      5  t        d       d d d        d}t        j                  t        |      5  t        t	        ddg      t	               g       d d d        d	}t        j                  t        |      5  t        t	               gd
d
g       d d d        d}t        j                  t        |      5  t        t	               gdg       d d d        d}t        j                  t        |      5  t        t	               gdg       d d d        d}t        j                  t        |      5  t        t	               t	               gd
dg       d d d        d}t        j                  t        |      5  t        t	               t	               gddg       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   kxY w# 1 sw Y   :xY w# 1 sw Y   
xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nz7`components` must contain at least one random variable.r'   z3Each element of `components` must be an instance...r1  z5All elements of `components` must have scalar shapes.rJ   r6   )r
  z5`components` and `weights` must have the same length.ri  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   rP  s     r1   r  z!TestMixture.test_input_validation  s   K]]:W5 	BK	 H]]:W5 	I	 J]]:W5 	3V1v&12	3 J]]:W5 	4VXJc
3	4 >]]:W5 	-VXJ,	- >]]:W5 	-VXJ,	- /]]:W5 	>VXvx(3*=	> 8]]:W5 	?VXvx(3+>	? 	?9	 		 		3 	3	4 	4	- 	-	- 	-	> 	>	? 	?s_   G1G> "HHH%H2?"H>"I
1G;>HHH"%H/2H;>I
Ic           	      .   t         j                  j                  d      }t        t	        dd      t	        dd      fd      }t               }|j                  d	      }t        |j                         |j                                t        |j                         |j                                t        |j                         |j                                t        |j                         |j                                t        |j                         |j                                t        |j                         |j                                t        |j                         |j                                t        |j                         |j                                t        |j                         |j                                t        |j!                  |      |j!                  |             t        |j#                  |      |j#                  |             t        |j%                  |      |j%                  |             t        |j'                  |      |j'                  |             t        |j)                  |      |j)                  |             t        |j+                  |      |j+                  |             t        |j-                  |      |j-                  |             t        |j/                  |      |j/                  |             t        |j1                  |      |j1                  |             t        |j3                  |      |j3                  |             d
D ]B  }t5        d      D ]2  }t        |j7                  ||      |j7                  ||      d       4 D d}|j9                  ||      }|j:                  |k(  sJ t=        j>                  |jA                         |j&                        jB                  dkD  sJ y )Nl   $8-@      пr  r	  ri  r  r  r  r  r4   )r  r  r  rh   r  re  ru  )r4   r   rh   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  r   rP  r   ks_1sampravelr  )	r.   r   r   r  r3   r  r  rP  r   s	            r1   
test_basiczTestMixture.test_basic  s   ii##$67VuC0&Cs2KL&(KJJrN7		QYY[1!&&(+
AHHJ/!&&(+

ajjl3,,.0D0D0FG

ajjl3

ajjl3QXXa[1a!%%(+QXXa[1a!%%(+		!aiil3q	166!9-		!aiil3q	166!9-

1qzz!}5
AGGAJ/6 	,Dq ,T : !T :%*,,	, HHUH$ww%~~aggi/66===rA   c                 :   d}t        j                  t         j                        } ||      }t        j                  || f      }t	        j
                  ddd      }t        |j                  |      t        j                  |      j                  |             y )Nr  r  r8   r?  )	r   r:  rZ  r   r=   rW   r   r   dgamma)r.   r#   rT  r   r  r3   s         r1   test_default_weightsz TestMixture.test_default_weights+  sp    ''4AJMM1qb'"KKAs#a%,,"3"7"7":;rA   c                    t        dd      t        dd      g}d}t        ||      }t        j                  t              5  d|_        d d d        t        j                  t              5  d|_        d d d        |d	   |j
                  d
<   |j
                  d
   |d
   k(  sJ |d	   |j                  d
<   |j                  d
   |d
   k(  sJ y # 1 sw Y   xY w# 1 sw Y   hxY w)Nr  r  r	  ri  r  r   r  r4   rJ   r   )r   r   r)   r*   r  
componentsr  )r.   r	  r  r   s       r1   test_propertieszTestMixture.test_properties3  s    S16S3LM
J0 ]]>* 	AL	]]>* 	AI	 %Q-Q||A*Q-///qz		!yy|wqz)))	 		 	s   C,CCC$N)r~   r   r   r  r  r  r
  r   rA   r1   r  r    s    ?B$>L<*rA   r  )r   )Mr6  r  ri  r   r  r=   r   r)   numpy.testingr   r   
hypothesisr   r   r	   r
   hypothesis.extra.numpyextrarS   scipyr   scipy.stats._fitr   scipy.stats._ksstatsr   r  r   scipy.stats._distr_paramsr   rW  r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r    r   rE  r   r   r   r   r   r   ra  r   r   r   r   r   r  r   Sobolr  rO  r}  r  r  r  r  ra  r  r  r  r  r  r   rA   r1   <module>r     s   	      7 E E % %  0 (  .' ' ' O N 'd6 d6N"NL 
	z! z!x'>"4$l)$X$2HGVn| F9-UWf$56'898*-bii&9&93::syy%QR9 S . : 7 .
9<%N$8@,F  w wtg7 g7T" "BE9 E9PO
 O
dK% K%\T& T`* `*rA   