
    e!h
6             
          d dl Z d dlZd dlmZ d dlZd dlmZ d dlZd dlm	Z	m
Z
 d dlmZmZmZmZ d dlmc mZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' d dl(m)Z)m*Z*m+Z+ d dlm,Z,m-Z-  G d d      Z.d7dZ/e)e,e-e*gZ0 G d d      Z1d Z2d Z3d Z4d Z5d Z6d Z7d Z8e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      i/var/www/html/diagnosisapp-backend/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.   rF   rG   rH   rI   input_shapesresult_shapeshape_ashape_bshape_x
a_elements
b_elementsr#   r$   dr3   r/   resleft_comparisonright_comparisonrefs                        r1   test_containszTest_RealDomain.test_contains+   s}    &,"l$0!' E%$(A7
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#rB   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.   rh   r/   s      r1   test_strzTest_RealDomain.test_strX   s2    
 tBQx4!9E6{d1g%%%rB   )rL   L)whitelist_categories)r#   r$   rG   rH   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   rk   )	r.   r#   r$   rG   rH   left_bracketright_bracketr/   rf   s	            r1   	test_str2zTest_RealDomain.test_str2`   s     OO1%OO1%)ss*1v(3['ACqcA3}o66{c!!!rB   c                 h    t        d      }t        d      }|j                  |j                  usJ y )Nr   rK   r%   )r   ru   )r.   domain1domain2s      r1   test_symbols_gh22137z$Test_RealDomain.test_symbols_gh22137x   s.     //goo555rB   N)!__name__
__module____qualname__r>   randomdefault_rngrngr2   r)   markparametrizeuniformr   r?   rA   slowr   rT   mutually_broadcastable_shapesr   booleansrI   rg   rl   one_ofdecimals
characterssampled_fromlistr   ru   ry   r~    rB   r1   r    r       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**,

"
 
"6rB   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   rK   )rO   rC   )r   proportionsi_parameterizationr   )rE   typical)parameter_valuesr   r   regionr{   TTprQ   )r   r   ignoredivideinvalid)_num_parameterizationsrS   r   integers_num_parametersrT   r   _drawtuplebroadcastable_shapes	_variable_parametersr>   broadcast_shapesr   r   errstatelog)familyrI   r   r   rE   n_parameterizationsin_parametersrF   r\   distx_shaper3   x_result_shapey_shapeyxy_result_shapep_domainp_varr   logps                        r1   draw_distribution_from_familyr      s    !779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   rN   rI   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_dimsrE   max_sider   r   r   samplerK   rb   r   )r>   r   r   r   rS   rT   array_shapesr   check_supportcheck_moment_funcscheck_sample_shape_NaNsr   Halton)r.   r   rI   r   r   r   tmpr   r3   r   r   r   r\   r   r   sample_shapeqrngs                    r1   test_support_moments_samplez-TestDistributions.test_support_moments_sample   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   rI   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   rK   r   rtolr   r   tolr>   asarraygetattrr   r   )	r.   r  r   r   r   ifuncr3   p1p2s	            r1   test_complement_safez&TestDistributions.test_complement_safe  s    LLNJJd|$q+&3{?+!I&!-.!L)RUBqE"!u1~~1qt!%%0rB   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   rK   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6rB   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+rB   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
rB   )r   r   r   r+  __classcell__r.  s   @r1   _Normalr'  7  s     rB   r1  rK   r6   r7   sigmar   r   logexp_safer  logexpr   r   r)  rK   )r   r   r>   r   r   isinfallr   )r.   r1  r   res1res2rf   i_fls          r1   test_logentropy_safez&TestDistributions.test_logentropy_safe5  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)Nr2  r3  )rK   ,  )ir6   -  r   r5  r6  r  r7  r   r   r)  rK   )r   r   r>   r   r   r8  r9  r   )r.   r   r3   r   r:  r;  rf   r<  s           r1   test_logcdf2_safez#TestDistributions.test_logcdf2_safeJ  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   r3  r   r?  rK   rA  r   r5  r6  r  r7  r   r   )r   r   r  r>   r   )r.   r  r   r3   r   r:  r;  rf   s           r1   test_logexp_safez"TestDistributions.test_logexp_safeZ  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   rI   r   r   r   r  r  r  r$  r=  rB  rD  r   rB   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!rB   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isscalarr9  isfinitenananyequal)r   fnamer   r\   r   
full_shapesample_methodr   r	  rc   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&''rB   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)ra  check_nans_and_edgesrQ  _shaperS  rT  )r   r#   r$   s      r1   r   r     s    <<>DAqy$2y$277dkk!!!77dkk!!!77dkk!!!77dkk!!!rB   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׊>rI  rJ  r  r   )r   copyr)   r*   NotImplementedErrorr  rb  rL  rN  r>   rR  r   rQ  rU  r   exprS  )
r   rZ  r   r\   r   r   rf   tol_overrider	  rc   s
             r1   r   r     s    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  +=re                  )rj  rL  rN  r   r>   rR  r   rQ  r   rU  rl  r   r   rS  	r   r   r3   r   r\   r   rf   r	  rc   s	            r1   r   r     s    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###
$rB   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 )	NrI  r    ccdf2_formular  r  ru  rv  )rj  rL  rN  r   r   r>   rR  r   rQ  r   rU  rl  r   r   rS  rx  s	            r1   r   r     s/    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###$rB   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   r{   r   r<   >   ilogcdfr   r   r)  rK   >   r   >   r   >   r   >   r   >   r   >   r   >   r   r}  >   r   r   >   r   rg  ra  r   rh  )rP  r   r   r   r/   classify_argr>   broadcast_arraysr   rW  ra  rO  rQ  rV  r9  )r   rZ  r   rc   r]  
arg_domainclassified_args	valid_argendpoint_argoutside_argnan_arg	all_validr#   r$   outside_arg_minusoutside_arg_plusendpoint_arg_minusendpoint_arg_pluss                     r1   rb  rb    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rB   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   rv  )momentr   rQ  r)   r*   rk  )orderkindr	  rf   successrc   re  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_rJ  Forders   )rL  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:rB   r  rawr   F)r  r   r  r  r  generalr   quadrature_icdfcentralrK   r6   	transformstandardizedri   r7   	normalize)NNT)reset_cacher  r  rb  rQ  r.  r   r   r   r   r   )r   r\   r  r  r   rf   varre  s   `      @r1   r   r   X  s    D8 	 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 	 3rB   r   r   )r6   r7   
dist_shape)r8   rK   rZ  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   rK   r   r   )axisF)r   g{Gz?)r>   r   r   r   r)   r   r   r   	GeneratorrQ  r   r   r:   sum)r   r  r   rZ  r  r   num_parametersr   nsample_sizesample_array_shaper\  r3   	statisticpvaluep_thresholdnum_pvaluesnum_small_pvaluess                     r1   test_sample_against_cdfr    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8rB   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rS  r   )r   _parameterizationsupdate
parametersr>   onesrc  boolitemsr/   r,   r=   r   r@   _invalid)r   r   r  parameterizationr  namevalue	parameterr#   r$   
a_included
b_includedvalids                r1   rP  rP    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]]+rB   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)  rK   )r>   r  rc  r  zerosr,   r   r  r=   rQ  intisnan)r   r   r  
valid_argsendpoint_argsoutside_argsnan_argsr#   r$   r  r  insideonoutsiderW  s                  r1   r~  r~     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##rB   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   rQ   N)r   r   r   r   r   r   r   rB   r1   Testr  =  s    "3{}=	rB   r  z`The `Test` distribution family does not accept parameters, but parameters `{'a'}` were provided.r'   rK   r#   zAAttribute `tol` of `Test` must be a positive float, if specified.r  r2  r)  zEArgument `order` of `Test.moment` must be a finite, positive integer.z2Argument `kind` of `Test.moment` must be one of...r6   coconutr  c                   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crQ   rb   r3   N)
r   r   r   r   r   _p1_p2r   r  r   r   rB   r1   Test2r  Z  s<    S7S7/S9:"3{}=	rB   r  zkThe provided parameters `{a}` do not match a supported parameterization of the `Test2` distribution family.zLThe `Test2` distribution family requires parameters, but none were provided.zjThe parameters `{c, d}` provided to the `Test2` distribution family cannot be broadcast to the same shape.)r  rb   zmThe argument provided to `Test2.pdf` cannot be be broadcast to the same shape as the distribution parameters.z$Parameter `c` must be of real dtype.z<Parameter `convention` of `Test2.kurtosis` must be one of...
convention)r   r)   r*   
ValueErrorr>   r  rW  r  r   r   r+   objectr   )r  r0   r  r   s       r1   test_input_validationr  <  s   >% >7G	z	1 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"   rK  r   r   )	r-   r   r   pickleloadsdumpsr   r>   r9  )kwargsdist1dist2dist3r:  r;  res3s          r1   test_rng_deepcopy_pickler    s    RGr"FfEUOELLe,-E||~u||~u||~$D66$$,66$$,|||+U\\b\-A5<<TV<CW$D66$$,66$$,rB   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*   rk  r   r  r   r>   r9  r  r  )r.   r   r0   r   cached_meanquadrature_means         r1   test_cache_policyz TestAttributes.test_cache_policy  s   :6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>   rW  r   r   absr   )
r.   r3   r   r0   X1X2rf   r:  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   rK   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      "rB   c                      yr  r   )r.   r  r,  s      r1   _moment_raw_formulazDTestAttributes.test_iv_policy.<locals>.MyUniform._moment_raw_formula  r  rB   N)r   r   r   r+  r  r   rB   r1   	MyUniformr     s    ##rB   r  r  r  )r  r  z/Attribute `validation_policy` of `MyUniform`...r'   r   )
r   r   r  r>   r  r   r  r)   r*   r  )r.   r   r#   r$   r  r0   s         r1   test_iv_policyzTestAttributes.test_iv_policy  s   a1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)NrK   r6   mur4  r7   r   r4   )r   r   r  r4  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   rB   r1   r  r    s    &*P1<,>rB   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   rt   rK   l   s4XF r4   rQ  r   gHz>r  r   r   mvskr  )r  re  excessr  ri   r  r  r7   r8   r  l   1XS+- )r:   random_stater   ))r  osenvironrv   r)   r   r  r   rF   r-   zipsplitr>   r   r   make_distributionr   r   r   r   ra  r   r   r   r   r   r   r   r   r   r   logsfr   sfr   ppfr   isfr  r  rvs)r.   r   distdatadistnamer   custom_tolerancesskip_entropyskip_skewnessskip_kurtosisskip_logccdfskip_rawskip_standardizedr   r,  r   CustomDistributionr   r  r3   r   r  re  mvskr  r   s                               r1   test_make_distributionz+TestMakeDistribution.test_make_distribution
  s   A;T 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*   rk  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_infrastructurerS  keyshasattrr   r;  gammark   r>   __version__repr__doc__r  )r.   rS  r   s      r1   test_repr_str_docsz'TestMakeDistribution.test_repr_str_docsa  s    P',,. 	(D5$'''	( &&u{{34!9~///>>S q	?&@@@@$,,&&&&&u'8'894Q< $EEEE>>S !%)VVVV&$,,666rB   N)r   r   r   r)   r   r   	enumerater   rO  r  r_  r   rB   r1   r  r  	  s8    [[]Ih,?@G' AG'R.7rB   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   rK   )lbubr7   r4   r6  rw        ?rM  rN  r7   r4   )'r>   r   r   minimummaximumr   truncater   	truncnormr@  r   r   r   r   r   r   r>  r   r   r  r   sqrtr   r   ra  r   r   r=  r   r   r?  r   r   r   r<  r}  r   r   r9  )	r.   r   rf  rg  r  Y0r   r   r   s	            r1   test_truncatezTestTransforms.test_truncatev  s   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4rB   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   rv  zATestTransforms.test_loc_scale.<locals>.TransformedNormal.__init__  s     !1CDCFCrB   )r   r   r   rv  r/  r0  s   @r1   TransformedNormalrt    s    D DrB   rw  )rK   r   r   r   rK   )r   rE   )locscaler   r   r6   rj  ri   r  r  r  )'r>   r   r   r   r   rx  ry  r   r   normra  r   r   rl  r   r   r   r   r   r   r   r   signr   r   r   r   r   r   r   r   r}  r   r   r   r  r  r  rc  )r.   rI   r   r   rw  r   r   r3   r   r   r   r\   r   r   rx  ry  dist0dist_refx0y0r#   r$   a0b0r   zs                             r1   test_loc_scalezTestTransforms.test_loc_scale  s    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ri   exp_powrl  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 )Nrd  re  rl  )ry  rh  ri  rj  rM  rN  r7      M [ r   )%r>   r   r   r   r   rl  elognormr@  r   r   r   r   r   r   r>  r   r   r  r   ro  r   r   ra  r   r   r=  r   r   r?  r   r   r   r<  r}  r   r   )r.   r  r   r  r4  r   r  rp  r   r   r   s              r1   test_exp_powzTestTransforms.test_exp_pow  s    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GrB   ry  )rK   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)Nrd  re  r  r   rh  r3  r   r   r  r   )r>   r   r   r{  r  r   r;  r(  r   r   r   r   r   r   r   r   ra  r   r   r   r   r   r   r   r   r}  r   )r.   ry  r   r#   r{  InvGammarp  r   r  r   r   r   r   s                r1   test_reciprocalzTestTransforms.test_reciprocal&  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)Nrd  re  r  rh  ri  rj  rM  rN  r7   r   )r   r  r   )$r>   r   r   r   r   loggammar   r@  r   r   r   r   r   r>  r   r   r  r   ro  r   r   ra  r   r   r=  r   r   r?  r   r   r   r<  r   r}  r   r   )	r.   r   r#   r   rp  r  r   r   r   s	            r1   test_logzTestTransforms.test_logQ  s   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)NrK   r6   r"   zUniform(a=1.0, b=2.0)zlog(rs   z1/(zexp(r)  z=Division by a random variable is only implemented when the...r'   zBThe logarithm of a random variable is only implemented when the...z@Raising an argument to the power of a random variable is only...rj        ?z=Raising a random variable to the power of an argument is onlyr   )r   rk   r   r   rl  r)   r*   rk  )r.   r   X_strr0   s       r1   test_monotonic_transformsz(TestTransforms.test_monotonic_transformss  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$   rx  ry  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":;rB   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 )Nrd  re  rh  ri  rw  rj  rM  rN  r7   r4   r   )%r>   r   r   r   r  r   foldnormr@  r   r   r   r   r   r   r>  r   r   r  r   ro  r   r   ra  r   r   r=  r   r   r?  r   r   r   r<  r}  r   r   r9  )r.   r   rx  r  rp  r   r   r   s           r1   test_abszTestTransforms.test_abs  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!!!rB   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  rK   )r   r;  weibull_minr  r   r   r   r   r   r   r   )r.   Weibullr   r  s       r1   test_abs_finite_supportz&TestTransforms.test_abs_finite_support  s     ))%*;*;<aLGQXXa[!((1+.QUU1XquuQx(QXXa[!((1+.QUU1XquuQx(QYYq\199Q<0QVVAYq	*rB   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 )Nrd  r6   rK   )dfr4   ri  rw  ri  r  rM  rN  r7   r   )$r>   r   r   r   r   chi2r@  r   r   r   r   r   r   r   r   r  r   ro  r   r   ra  r   r   r=  r   r>  r   r?  r   r   r   r<  r}  r   r   r9  )r.   r   r  rp  r   r   r   s          r1   test_powzTestTransforms.test_pow  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!!!rB   N)r   r   r   rq  r)   r   rE  r   r   rI   r   r  r   r  xfail_on_32bitr  r  r  r  r  r  r  r   rB   r1   rb  rb  s  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<$"@+"rB   rb  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   rK   r"   ri   r7   )r  rrh  ri  rM  rf  rv  rN  rj  r  r  r   r   r   r   z0`r` and `n` must contain only positive integers.r'   r)  r  )&r>   r   r   r   r  r   order_statisticrV  r@  r   r   rl  r   r   r   r   r  r   r   r   r>  ra  r   r   r   r   r   r   r   r<  r   r}  r   r   r?  r)   r*   r  )
r.   r   r   r  r  r  rp  r   r   r0   s
             r1   test_order_statisticz'TestOrderStatistic.test_order_statistic  s   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 )Nri   r6   r7   r  r  )r   r;  r   r  r   ra  )r.   r   r   r  Zs        r1   test_support_gh22037z'TestOrderStatistic.test_support_gh22037   sV     ))%--8IaC!G!!!qA.		QYY[1rB   c                    t        j                  t         j                        }t        j                  t         j                        }ddgd}}ddgdgg}}dggdggg} |       }t        j                  |||      }	t        j
                  |	||	      }
 |||
      }t        j
                  |||	      }t        j                  j                  |
j                  |      |j                  |             y )Nr  r)  rK   r7   r8   ri   g333333ӿr   r  r"   )
r   r;  rz  rn  rm  r  r>   rR  r   r   )r.   r   TruncatedNormalr#   r$   r  r  r3   r  Y1Z1r  Z2s                r1   test_composition_gh22037z+TestOrderStatistic.test_composition_gh22037*  s    
 ((411%//BBx1A3*1fXwX^^B1%""2a0qA&""2a0


""266!9bffQi8rB   N)	r   r   r   r)   r   rE  r  r  r  r   rB   r1   r  r    s.    [[2(1 (1T29rB   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*   rk  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*   rk  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)  rK   r3   rQ   rj  g      @r  r  TF)r   r   r>   r  r  r   )	r.   r  r  r/   r  r3   arrrS  r  s	            r1   "test_RealParameter_uncommon_dtypesz3TestFullCoverage.test_RealParameter_uncommon_dtypesK  sp     W%"3v6	JJSz2%..q2.FUES!	!!!UT5M*rB   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%   rQ   c                      y)Nr   r   r.   r3   r   r  s       r1   _logpdf_formulaz^TestFullCoverage.test_ContinuousDistribution_set_invalid_nan.<locals>.TestDist._logpdf_formula_  s    rB   N)r   r   r   r   r   r   r  r   rB   r1   TestDistr  ]  s    &s;3RSIrB   r  rj  r  )r   r>   float32rT  r  r   rS  )r.   r  r   rS  r3   s        r1   +test_ContinuousDistribution_set_invalid_nanz<TestFullCoverage.test_ContinuousDistribution_set_invalid_nanX  sV    
	- 	
 J

JJuE*xx{  E)))rB   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   rK   )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ArB   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5rB   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   rK   r"   rT  zUniform(a=0.0, b=1.0)z-Uniform(a=np.float64(0.0), b=np.float64(1.0))r7   r6   z3.0*Uniform(a=0.0, b=1.0) + 2.0zOnp.float64(3.0)*Uniform(a=np.float64(0.0), b=np.float64(1.0)) + np.float64(2.0)r8   z'Uniform(a=array([0., 0., 0., 0.]), b=1)r  z[Uniform(a=array([0., 0., 0., 0.], dtype=float32), b=array([1., 1., 1., 1.], dtype=float32)))r   r>   r\  r]  r  r  r  )r.   r   s     r1   #test_ContinuousDistribution__repr__z4TestFullCoverage.test_ContinuousDistribution__repr__v  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
 	
 
rB   N)r   r   r   r  r  r)   r   r   r>   float16int16r  r  r  r  r  r  r   rB   r1   r  r  <  sl    "* [[6 "

BJJ7 ""**578+8+* B6
rB   r  c                   (   e Zd Z edd      Z e ej                  d       ej                  d            Z edd      Z	 edd      Z
 e ej                  d      d      Zej                  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   rK   r"   r   r   r)  r
  i  r   r  rT  z#numpy 1.x didn't have dtype in repr)reason)marksr6   r  r7   r8   ri   r  g?g?g333333?r   weightsr  c                    ddl m} ddl m} ddlm}m}m}m}m} ddlm	}	m
}
 ddlm} t        t        |            }|j                  dd	      }|j                  dd	      }t!        ||       |j"                  |j"                  u sJ y )
Nr   )array)r  )r  rl  r   r  rm  )r   r   )r   r4   i  r3  )numpyr  r  scipy.statsr  rl  r   r  rm  r   r   scipy.stats._new_distributionsr   rZ   r]  r   r   rS  )r.   r   r  r  r  rl  r   r  rm  r   r   r   new_distr^  r_  s                  r1   test_executablezTestReprs.test_executable  si    L 	 !HH/:T
#++BD+1///5Wg&}}---rB   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:$$$rB   N)!r   r   r   r   Ur>   r  Vr   r   r  r  r  r)   r   r   r  paramskipifr\  r  r  r   r  rm  r   r  rl  r   r  fullaranger  r   rB   r1   r  r    s   !qA*"**S/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	
%%rB   r  c                   b    e Zd Z ed eej                   ej                  f            Zd Zy)	MixedDistr3   r%   rQ   c                 <   ddt        j                  dt         j                  z        z  z  t        j                  d|dz   dz  dz  z        z  ddt        j                  dt         j                  z        z  z  t        j                  d|dz
  dz  dz  z        z  z   S )	N皙?皙?r6         g      ?333333??rj  )r>   ro  r?   rl  r  s       r1   _pdf_formulazMixedDist._pdf_formula  s    rwwqw//0266$4q?P:P3QQ3255!112RVVD1S5#+PQAQ<Q5RRS 	TrB   N)	r   r   r   r   r   r>   r   r   r  r   rB   r1   r  r    s(    s;266'266AR+STITrB   r  c                   l    e Zd Zd Zej
                  j                  dddg      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...r2  z5All elements of `components` must have scalar shapes.rK   r6   )r  z5`components` and `weights` must have the same length.rj  r  z)`weights` must have floating point dtype.z`weights` must sum to 1.0.r   z#All `weights` must be non-negative.r  r  )r)   r*   r  r   r   rQ  s     r1   r  z!TestMixture.test_input_validation  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rQ  r   )r4   c           	         t         j                  j                  d      }t        t	        dd      t	        dd      fd      }t               }|j                        }fd	} ||j                         |j                                 ||j                         |j                                 ||j                         |j                                 ||j                         |j                                 ||j                         |j                                 ||j                         |j                                 ||j                         |j                                 ||j                         |j                                 ||j                         |j                                 ||j                  |      |j                  |              ||j!                  |      |j!                  |              ||j#                  |      |j#                  |              ||j%                  |      |j%                  |              ||j'                  |      |j'                  |              ||j)                  |      |j)                  |              ||j+                  |      |j+                  |              ||j-                  |      |j-                  |              ||j/                  |      |j/                  |              ||j1                  |      |j1                  |             d
D ]?  }t3        d      D ]/  } ||j5                  ||      |j5                  ||      d       1 A d|j7                  |      }	|	j8                  k(  sJ t;        j<                  |	j?                         |j$                        j@                  dkD  sJ y )Nl   $8-@      пr  r
  rj  r  r  r  r  c                     dk(  rt        j                  |       sJ t        j                  j                  | |fi | y )Nr   )r>   rU  rR  r   )rc   rf   r  rQ  s      r1   r   z/TestMixture.test_basic.<locals>.assert_allclose  s5    {{{3'''JJ&&sC:6:rB   )r  r  r  ri   r  rf  rv  )r4   r   ri   r   g?)!r>   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r}  r   r   r   r  r  r   rQ  r   ks_1sampravelr  )
r.   rQ  r   r   r  r3   r   r  r  r   s
    `        r1   
test_basiczTestMixture.test_basic  s   ii##$67VuC0&Cs2KL&(KJJu	;
 	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===rB   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;  r[  r   r>   rX   r   r   dgamma)r.   r#   rU  r   r  r3   s         r1   test_default_weightsz TestMixture.test_default_weights1  sp    ''4AJMM1qb'"KKAs#a%,,"3"7"7":;rB   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
  rj  r  r  r  r4   rK   r   )r   r   r)   r*   r  
componentsr  )r.   r  r  r   s       r1   test_propertieszTestMixture.test_properties9  s    S16S3LM
J0 ]]>* 	AL	]]>* 	AI	 %Q-Q||A*Q-///qz		!yy|wqz)))	 		 	s   C,CCC$c                    t         j                  j                  d      }t        j                  t        j
                        } |       }t        j                  ||g      }|j                  d      }t         j                  j                  |j                  |      |j                  |             t         j                  j                  |j                  |      |j                  |             t         j                  j                  |j                  |      |j                  |             t         j                  j                  |j                  |      |j                  |             y )Nl    nppRr4   r9   )r>   r   r   r   r;  cauchyr   rR  r   r   r   r}  r   )r.   r   CauchyX0r   r   s         r1   test_inversezTestMixture.test_inverseK  s     ii##$;<((6XMM2r(#JJBJ


""166!9bggaj9


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


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


""1::a="++a.ArB   N)r   r   r   r  r)   r   r   r  r	  r  r  r   rB   r1   r  r    sB    ?B [[Wr5k2)> 3)>V<*$BrB   r  )r   )Mr7  r  rj  r   r  r>   r   r)   numpy.testingr   r   
hypothesisr   r   r	   r
   hypothesis.extra.numpyextrarT   scipyr   scipy.stats._fitr   scipy.stats._ksstatsr   r  r   scipy.stats._distr_paramsr   rX  r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r    r   rF  r   r   r   r   r   r   rb  r   r   r   r   r   r  r   Sobolr  rP  r~  r  r  r  r  rb  r  r  r  r  r  r   rB   r1   <module>r     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tB tBrB   