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

7
=A	Hh	7 vvay Aq$noMM s   ;G##G,c                   d   e Zd Zej                  j                  d       ed      ej                  j                  de       e	 e
j                          e
j                  d            ej                  j                  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            ej                  j                  d'                                           Zej                  j                  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   rR   rM   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_dimsrI   max_sider   r   r   samplerO   rf   r   )rB   r   r   r   rW   rX   array_shapesr   check_supportcheck_moment_funcscheck_sample_shape_NaNsr   Halton)r2   r   rM   r   r   r   tmpr   r7   r   r   r   r`   r   r   sample_shapeqrngs                    r5   test_support_moments_samplez-TestDistributions.test_support_moments_sample   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r8   zfunc, methods, argentropylog/exp
quadratureN
logentropymedianicdfmodeoptimizationmeancachevarianceskewnesskurtosispdfr7   logpdflogcdf>   
complementr   r   cdflogccdfccdfilogccdfr   	inversionr   iccdfr   c           	         |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   )r7   r   r   r   )r   r   overr   r:   r   r   FTr   addition)r!   r-   skiprB   r   r   r   r   check_dist_funcr   standard_deviationr   
isinstancer   
check_cdf2check_ccdf2)r2   r   rM   r   funcmethodsargr   r   r   r   r7   r   r   r   r`   r   r   argss                      r5   
test_funcszTestDistributions.test_funcs   s   0 W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)r2   pltXaxs       r5   	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   rO   r   rtolr   r    tolrB   ru   getattrr   r   )	r2   r  r  r   r  ifuncr7   p1p2s	            r5   test_complement_safez&TestDistributions.test_complement_safe%  s    LLNJJd|$q+&3{?+!I&!-.!L)RUBqE"!u1~~1qt!%%0rF   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   rO   r   r   r"  )r2   r  r  r   r  r%  x1x2s           r5   test_icomplement_safez'TestDistributions.test_icomplement_safe3  s    LLNJJd|$q+&3{?+1./1\*RUBqE"!u1~~RUQqT6rF   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  )r8      )r/  r.  r0  r8   r   r  subtraction_safesubtractionr   )#BǻO
㒻#B;O
;r3  )r4  r3  r6  r5  r5  r   )	r   r    r#  r   r   r   rB   ru   r   )r2   r  r7   r   p0r&  r'  s          r5   test_subtraction_safez'TestDistributions.test_subtraction_safe@  s    LLN UU1aU-UU1a 2U3UU1aU.RBQUU+ JJ=>JJ<= UU1Xqs^UU1a 2U3UU1aU.RBQUU+rF   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   rr   )rB   ru   super_entropy_formular   )r2   paramsout	__class__s      r5   r?  zHTestDistributions.test_logentropy_safe.<locals>._Normal._entropy_formula[  s9    jj!9!CF!CDA&&B
rF   )r   r   r   r?  __classcell__rB  s   @r5   _Normalr;  Z  s     rF   rE  rO   r:   r;   sigmar   r   logexp_safer  logexpr   r   r=  rO   )r   r    rB   r   r   isinfallr   )r2   rE  r  res1res2rj   i_fls          r5   test_logentropy_safez&TestDistributions.test_logentropy_safeX  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)NrF  rG  )rO   ,  )ir:   -  r   rI  rJ  r  rK  r   r   r=  rO   )r   r    rB   r   r   rL  rM  r   )r2   r  r7   r   rN  rO  rj   rP  s           r5   test_logcdf2_safez#TestDistributions.test_logcdf2_safem  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)Nr:   rG  r   rS  rO   rU  r   rI  rJ  r  rK  r   r   )r   r    r$  rB   r   )r2   r  r  r7   r  rN  rO  rj   s           r5   test_logexp_safez"TestDistributions.test_logexp_safe}  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   rM   r   r   r   r
  r  r(  r,  r8  rQ  rV  rX  rr   rF   r5   r   r      s   [[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,0,*,  [[]Xy,AB! C!rF   r   c                 L   ||z   }|dk(  r| j                   }dh}| j                  d| d      r+t        |t        j                        s|j                  d       |D ]E  } |||      }	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        | t$              s+t        j&                  t        j(                  |	|            rJ t        ||       H y )	Nr   inverse_transform__formular  )r  r   rr   *   )r   
_overridesr  r   	QMCEngineaddrB   broadcast_toget_valid_parametersshaper   testingdtype_dtypeisscalarrM  isfinitenanr   anyequal)r   fnamer   r`   r   
full_shapesample_methodr  r  rg   valid_parameterssample1sample2s                r5   r   r     s\   ,J"#G5'*+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$ 45 vvbhhsG4555Wg&/'rF   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)ru  check_nans_and_edgesre  _shaperg  rh  )r   r'   r(   s      r5   r   r     s    <<>DAqy$2y$277dkk!!!77dkk!!!77dkk!!!77dkk!!!rF   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׊>r]  r^  r  r   )r   copyr-   r.   NotImplementedErrorr$  rv  r`  rb  rB   rf  r   re  ri  r   exprg  )
r   rn  r  r`   r  r	  rj   tol_overrider  rg   s
             r5   r  r    s    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           	      z   |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 ]  }t        | t              rdd
}t        j                  t        |      5  |r't	        j                  | j!                  |||            n| j                  |||      }	d d d        x|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 # 1 sw Y   ,xY w)N_logcdf2_formular  _logcdf_formula_logccdf_formular2  _cdf_formula_ccdf_formular   _cdf2_formulaUTwo argument cdf functions are currently only supported for continuous distributions.r+   r  +=ry                  )r~  r`  rb  r   rB   rf  r   re  r   ri  r  r   r-   r.   r  r  r   r   rg  
r   r   r7   r   r`   r  rj   r  r4   rg   s
             r5   r  r    sc    llnG
??-.KK	"??,-AS1TKK&OON+???3KK	"???+KK	"??>*dooo.NKK&OO-.??#56KK	"
((1+
#CJJCII|4uw{{3 $d013G2'B ;CFrvvdkk!Qvk>? HHQ&H9 ; ;>rvvdkk!Qvk67HHQ&H1 	


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


		<857";;s####$; ;s   >L00L:	c           	      2   |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 ]Z  }d}t        | t              rbt        j                  t        |      5  |r't        j                   | j#                  |||            n| j	                  |||      }	d d d        x|r't        j                   | j#                  |||            n| j	                  |||      }	t
        j                  j%                  |	|d	
       t
        j                  j                  |	j&                  |j&                         t
        j                  j                  |	j                  |       |t               k(  sDt        j                  |	      r[J  y # 1 sw Y   xY w)Nr]  r    ccdf2_formular  r  r+   r  r  r  )r~  r`  rb  r   r   rB   rf  r   re  r   ri  r  r   r-   r.   r  r  r   r   rg  r  s
             r5   r  r  "  s    llnGC5R0>?I
((1+		!
$CJJCII|4uw{{3 $/d012'B <DGrvvdll1al?@ IIa6I: < <?rvvdll1al78IIa6I2 	


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


		3995


		<857";;s###$< <s   >HH	c                 	   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  }t        | t              }|d	v rt        ||   t        j                          t        ||   t        j                          |st        j                   nt        j                  }t        ||| z     |       t        ||| z     |       nn|d
v rZt        ||   d       t        ||   d       |sdnt        j                  }t        ||| z     |       t        ||| z     |       n|dv rJ|sHt        ||   t                t        ||   d       t        ||   t                t        ||   d       n|dv r@|s>t        ||   d       t        ||   d       t        ||   d       t        ||   d       n~|dv rJ|sHt        ||   d       t        ||   t                t        ||   d       t        ||   t                n0|dv r?|s=t        ||   d       t        ||   d       t        ||   d       t        ||   d       n|dv rs|sqt        ||	dk(     t        j                         t        ||	dk(     t        j                         t        ||dk(     ||dk(            t        ||dk(     ||dk(            nv|dv rr|spt        ||	dk(     t        j                         t        ||	dk(     t        j                         t        ||dk(     ||dk(            t        ||dk(     ||dk(            h d}t        | t              r|j                  ddh       ||vrt        | t               rBt        j"                  | j$                  dk(  | j&                  dk(  z  | j&                  dk(  z        s/t        j(                  |||dk(  z           j+                         sJ y y y )N>   r   r   rm   r   r@   >   ilogcdfr   r   r=  rO   >   r   >   r   >   r   >   r   >   r   >   r   >   r   r  >   r   r   >   r   r{  ru  r   r|  r   r   )rd  r   r   r   r3   classify_argrB   broadcast_arraysr   rk  ru  rc  re  r  r   updater"   rl  nr   rj  rM  )r   rn  r  rg   rq  
arg_domainclassified_args	valid_argendpoint_argoutside_argnan_arg	all_validr'   r(   outside_arg_minusoutside_arg_plusendpoint_arg_minusendpoint_arg_plusis_discreterj   excludes                        r5   rv  rv  B  s   +D1!!"V|L
	)	)"sdAY,O
^^**
"4j9O)+)<)<=M *O>M*O&4C1I|[',,I &&'0Wrvv&<<>DAq
399%A
399%A$*.>>#q(,<<&",0@@%*.>>T#78K 
S*+bffW5S)*RVVG4(rvvgbffS+yj893?S*iZ78#>	'	S*+Q/S)*A."aS+yj893?S*iZ78#>	*	[S*+cT2S)*A.S+,sd3S*+Q/	'	+S*+Q/S)*A.S+,a0S*+Q/	+	kS*+Q/S)*SD1S+,a0S*+cT2	(	;S*+Q/S)*A.S+,a0S*+Q/	%	%k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GG$,-x()  h/11 =1 MN
 {{3yLA,=>?@DDFFF O !rF   c                     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                           j                  dd        j                  dd        j                  dd       t        dd      D ]{  } j                  |dd
      } ||dd| ||d      xr t        j                  |dk(         	        j                  |d        ||dd|t        j                  |dk(         	       }  j                  ddd
      } j                          t        d      D ]  } ||ddd	        j                  |dd
      ||dz  z  z  }|j                  |k(  sJ  ||dd| ||d      	       t         t              rBt        j                   j                  dk(   j                  dk(  z   j                  dk(  z        s ||dd||dk  	        ||dd|        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  r8   r  )momentr   re  r-   r.   r  )orderkindr  rj   successrg   ry  r   s         r5   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_r^  Forders   )r`  r$  setrange)r  r  formula_name	overridesr  r  r   s         r5   has_formulaz'check_moment_funcs.<locals>.has_formula  sQ    !$x0OOL1	$-(CaM:rF   r  rawr   F)r  r   r  r  r  generalr   quadrature_icdfcentralrO   r:   	transformstandardizedr}   r;   	normalize)NNT)reset_cacher  r  rv  re  rB  r   r    r!   r   rB   rl  r  r"   r  r   r   )	r   r`   r  r  r   rj   r   varry  s	   `       @r5   r   r     sW    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& }}H 	KK>"KK>"KK>"1a[ Qkk!Y|k<aK!!^4RRVVHPQM=R9R	TA~&aK"&&Q:O6OPQ ++a<+
8C1X 3a%8kk!Y|k<sq1u~MyyL(((aC!!^4	6 4*FFDFFaKDFFaK8DFFaKHI !^YQ!VDac23 $12 	 3rF   r   r   )r:   r;   
dist_shape)r<   rO   rn  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   rO   r   r   )axisF)r   g{Gz?)rB   r   r   r   r-   r   r   r   	Generatorre  r   r   r>   sum)r   r  r   rn  r  r   num_parametersr   r  sample_sizesample_array_shaperp  r7   	statisticpvaluep_thresholdnum_pvaluesnum_small_pvaluess                     r5   test_sample_against_cdfr     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8rF   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rg  r   )r   _parameterizationsr  
parametersrB   onesrw  boolitemsr3   r0   rA   r   rD   _invalid)r   r   r  parameterizationr  namevalue	parameterr'   r(   
a_included
b_includedvalids                r5   rd  rd  C  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]]+rF   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=  rO   )rB   r  rw  r  zerosr0   r   r  rA   re  intisnan)r   r  r  
valid_argsendpoint_argsoutside_argsnan_argsr'   r(   r  r  insideonoutsiderk  s                  r5   r  r  j  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##rF   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>.Testr7   rU   N)r   r   r   r   r   r   rr   rF   r5   Testr    s    "3}?	rF   r  z`The `Test` distribution family does not accept parameters, but parameters `{'a'}` were provided.r+   rO   r'   zAAttribute `tol` of `Test` must be a positive float, if specified.r#  rF  r=  zEArgument `order` of `Test.moment` must be a finite, positive integer.z2Argument `kind` of `Test.moment` must be one of...r:   coconutr  c                   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crU   rf   r7   N)
r   r   r   r   r   _p1_p2r   r  r   rr   rF   r5   Test2r    s<    S9S9/S9:"3}?	rF   r  zkThe provided parameters `{a}` do not match a supported parameterization of the `Test2` distribution family.zLThe `Test2` distribution family requires parameters, but none were provided.zjThe parameters `{c, d}` provided to the `Test2` distribution family cannot be broadcast to the same shape.)r  rf   zmThe argument provided to `Test2.pdf` cannot be be broadcast to the same shape as the distribution parameters.z$Parameter `c` must be of real dtype.z<Parameter `convention` of `Test2.kurtosis` must be one of...
convention)r   r-   r.   
ValueErrorrB   ru   rk  r  r   r   r/   objectr   )r  r4   r  r   s       r5   test_input_validationr    s#   @% @7G	z	1 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=  r:   r8   r&   r_  r   rr   )	r1   r!   r   pickleloadsdumpsr   rB   rM  )kwargsdist1dist2dist3rN  rO  res3s          r5   test_rng_deepcopy_pickler    s    RGr"FfEUOELLe,-E||~u||~u||~$D66$$,66$$,|||+U\\b\-A5<<TV<CW$D66$$,66$$,rF   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.   r  r   r  r   rB   rM  r  r  )r2   r   r4   r   cached_meanquadrature_means         r5   test_cache_policyz TestAttributes.test_cache_policy  s   :6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+         )r   r   r  r  r   r  r   gGz?r   )r   r    r-   r.   r  r#  rB   rk  r   r   absr   )
r2   r7   r  r4   X1X2rj   rN  rO  r   s
             r5   test_tolzTestAttributes.test_tol  s   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   rO   r&   r:   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	incorrectrr   )r2   r	  r  s      r5   r?  zATestAttributes.test_iv_policy.<locals>.MyUniform._entropy_formula.      "rF   c                      yr  rr   )r2   r  r@  s      r5   _moment_raw_formulazDTestAttributes.test_iv_policy.<locals>.MyUniform._moment_raw_formula1  r  rF   N)r   r   r   r?  r  rr   rF   r5   	MyUniformr  -  s    ##rF   r  r  r  )r  r  z/Attribute `validation_policy` of `MyUniform`...r+   r   )
r!   r   r  rB   ru   r   r  r-   r.   r  )r2   r  r'   r(   r  r4   s         r5   test_iv_policyzTestAttributes.test_iv_policy   s   a1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)NrO   r:   murH  r;   r   r8   )r   r    r#  rH  r-   r.   AttributeError)r2   r  Ys      r5   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&  rr   rF   r5   r  r    s    &*P1<,>rF   r  c                   V   e Zd Zej                  j                  d eeez               d        Z	d Z
ej                  j                  ej                  j                  d      ej                  j                  dddd ej                  g d	      g      d
                      Zej                  j                  ej                  j                  dd ej                  g d      g      ej                  j                  dd ej                  g d      g      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}h d}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-        |t        j.                        r=t'        t        j0                  |j3                               |j+                         |       t'        |j5                         |j5                         |       t'        |j7                         |||       t'        |j9                         |||       ||vrt'        |j;                         |||       ||vrt'        |j=                  d !      |||       t-        |t        j>                        rYt'        |jA                  |      |jA                  |      |       t'        |jC                  |      |jC                  |      |       nXt'        |jE                  |      |jE                  |      |       t'        |jG                  |      |jG                  |      |       t'        |jI                  |      |jI                  |      |       t'        |j#                  |      |j#                  |      |       ||	vr,t'        |jK                  |      |jM                  |      |       t'        |jO                  |      |jQ                  |      |       |j)                         \  }}|jS                  |      }|||dk(  <   |jU                  |      }|||dk(  <   t'        |jW                  |      ||       t'        |jY                  |      ||       t[        d"      D ]F  }||
j                  |i       vst'        |j]                  |d#$      |j]                  |      ||       H t[        d%d&      D ]<  }||vst'        |j]                  |d'$      |j                  d|dz
           ||       > t-        |t        j>                        rOd(}t'        |j!                  d|      |j_                  dt        j                  j                  |      )      |       d d d        y # 1 sw Y   y xY w)+Nr   >   zipfargusksonekstwokappa4logserskellamexponpowgenexpongompertz	exponweib	johnsonsb	kstwobign	powernorm
betanbinomhalfgennormnorminvgausspowerlognormrecipinvgaussvonmises_linestudentized_rangeSCIPY_XSLOW0zSkipping as XSLOW>   vonmises	hypergeomlevy_stablepoisson_binomnchypergeom_fishernchypergeom_walleniusgh㈵>)r,  r-  r6  pearson3>   r,  r1  rF  >   chir,  r-  r1  invgammar5  rF  >   triangarcsine	trapezoid
skewcauchy>   levyrw   levy_l
foldcauchy
halfcauchyparetorI  r9   r1  r,  r   rO      s4XF r8   re  r   gHz>r  r   r   mvskr   )r!  ry  excessr  r}   r  r  r;   r<   r  l   1XS+- )r>   random_staterr   )0r  osenvironr   r-   r   r$  r   rJ   r1   zipsplitrB   r   r   make_distributionr   r   r   r   ru  r   r  rv_discreter  r   r   r   r   r   r   rv_continuousr   r   logpmfpmfr   r   logsfr   sfppfisfr   r   r  r  rvs) r2   r   distdatadistnamer   custom_tolerancesskip_entropyskip_skewnessskip_kurtosisskip_logccdfskip_rawskip_standardizedr   r@  r   CustomDistributionr  r%  r7   r   r!  ry  mvskr'   r]  ref_ppfref_isfr  r   s                                    r5   test_rv_genericz$TestMakeDistribution.test_rv_genericT  s   A;;
 2::>>-568t;KKK+, 
 
  '+T:#Z0F2 HN z"|% (1uh'DHKKc$++++D18A;?@UWii##$45"44T:((N6NHH23H'EE!H $$Xt4[[(; 7	+JAq!QAIIK5|+		QYY[tD!U../  q||~ 6		$OAHHJ
>AFFHad>AJJL!$TB},

adF},

h
 ?%)6$ 3 34QXXa[tDa!%%(>QXXa[tDa!%%(>AHHQK!4@AEE!HaeeAhT:|+		!aggajtDAFF1IqttAwT: 99;DAqeeAhGGAFOeeAhGGAFOAFF1IwT:AGGAJd;q K8<<r#::#AHHUH$?$%HHUO$TKK q! T#44#AHHUH$H$%GGF57O$<4dTT $ 3 34 'rt < !235993H3H3N !& !P%)+i7	+ 7	+ 7	+s   NW#AW(B WWc           	         t         j                  j                  d      } G d d      }t        j                   |             } |t        j
                  d      t        j
                  d            }t        j
                  t        dd            }|j                  d	|
      }|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'                  |             dD ]@  }t)        d      D ]0  }	t        |j+                  |	|      |j+                  |	|             2 B |j                  d	dd      }
|j                  d	dd      }t        |
|       t        j,                  |
|k(        rJ t        |j/                  d      |j/                  d             |j/                  d      |j/                  d      k(  rJ y )NrS  c                   V    e Zd Zed        Zed        Zed        Zd ZdddZd	dZ	y)
6TestMakeDistribution.test_custom.<locals>.MyLogUniformc                      yNz1.16.0rr   r2   s    r5   __make_distribution_version__zTTestMakeDistribution.test_custom.<locals>.MyLogUniform.__make_distribution_version__      rF   c                 X    dt         j                  fdddt         j                  fdddS )Nr   FFr@   r'   r&   rB   r   r|  s    r5   r  zATestMakeDistribution.test_custom.<locals>.MyLogUniform.parameters  s.    ,-rvv;^T,/=~VX XrF   c                 
    ddiS )Nr*   r&   rr   r|  s    r5   ru  z>TestMakeDistribution.test_custom.<locals>.MyLogUniform.support  s    #Z00rF   c                 d    d|t        j                  |      t        j                  |      z
  z  z  S )NrO   rB   r   )r2   r7   r'   r(   s       r5   r   z:TestMakeDistribution.test_custom.<locals>.MyLogUniform.pdf  s'    ARVVAY!6788rF   Nr   c                    |j                  |      }t        j                  t        j                  |      |t        j                  |      t        j                  |      z
  z  z         S )Nr=   )r   rB   r  r   )r2   re  r'   r(   r   r   s         r5   r   z=TestMakeDistribution.test_custom.<locals>.MyLogUniform.sample  sH    KKUK+vvbffQi!rvvay266!9/D*EEFFrF   c                \    |dk(  r'|dk(  r!||z
  t        j                  ||z        z  dz   S y y )NrO   r  g|=r  )r2   r  r  r'   r(   s        r5   r  z=TestMakeDistribution.test_custom.<locals>.MyLogUniform.moment  s8    A:$%- ERVVAaC[0588 #0:rF   )r  )
r   r   r   propertyr}  r  ru  r   r   r  rr   rF   r5   MyLogUniformry    sS        X X 1 19 26 G9rF   r  rO   r;   r&   r  r  r8   rT  r  r  r  r}   r  r   r  )re  r   r  r\  r  r   )rB   r   r   r   r\  r  r!   r   r   r   ru  r   r   r   r   r   r   r   r   r   r  r  rM  r   )r2   r   r  
LogUniformr  r%  r7   r   r  r  sample_formulasample_inverses               r5   test_customz TestMakeDistribution.test_custom  ss   ii##$45	9 	96 ,,\^<
bffQi0IIgb)*HH23H'EE!H		QYY[1		QYY[1
AHHJ/QXXa[1a!%%(+QXXa[1a!%%(+		!aiil3q	166!9-q	166!9-
AGGAJ/6 	<Dq <T : !T :<<	< )D:MN766.N:;;;i0!&&&2MN666+qvv\v/JJJJJrF   zignore::RuntimeWarningr  r=  r   rO   )g r  r  r  g @c                    t         j                  j                  d      } G d d      }t        j                   |             }t        j                  t        j
                        } ||dd      } ||      }|j                  d|	      }|j                  |      }	t        |j                         |j                                t        |j                         |j                         d
       t        |j                         |j                                t        |j                  |      |j                  |             t        |j                  |      |j                  |             t        |j                  |      |j                  |             t        |j                  |      |j                  |             t        |j                  |      |j                  |             t        |j!                  |      |j!                  |             t        |j#                  |	      |j#                  |	             t        |j%                  |	      |j%                  |	             y )NrS  c                   H    e Zd Zed        Zed        Zed        Zd Zd Zy)GTestMakeDistribution.test_custom_variable_support.<locals>.MyGenExtremec                      yr{  rr   r|  s    r5   r}  zeTestMakeDistribution.test_custom_variable_support.<locals>.MyGenExtreme.__make_distribution_version__  r~  rF   c                     t         j                   t         j                  fddt         j                   t         j                  fdddt         j                  fdddS )Nr  r@   r   r  r#  rH  r  r|  s    r5   r  zRTestMakeDistribution.test_custom_variable_support.<locals>.MyGenExtreme.parameters  sL     *,'8~V*,&&"&&(9W,-rvv;^T rF   c                     d }d }||fddS )Nc                     t        j                  | ||      \  } }}t        j                  |       }t         j                   || dk\  <   || dk     || dk     | | dk     z  z   || dk  <   |d   S Nr   rr   rB   r  
empty_liker   r  r#  rH  results       r5   leftz]TestMakeDistribution.test_custom_variable_support.<locals>.MyGenExtreme.support.<locals>.left  sv    #%#6#6q"e#DLAr5]]1-F&(ffWF16N$&q1uIa!eqQx0G$GF1q5M!":%rF   c                     t        j                  | ||      \  } }}t        j                  |       }t         j                  || dk  <   || dkD     || dkD     | | dkD     z  z   || dkD  <   |d   S r  r  r  s       r5   rightz^TestMakeDistribution.test_custom_variable_support.<locals>.MyGenExtreme.support.<locals>.right  st    #%#6#6q"e#DLAr5]]1-F%'VVF16N$&q1uIa!eqQx0G$GF1q5M!":%rF   r  r@   rr   )r2   r  r  s      r5   ru  zOTestMakeDistribution.test_custom_variable_support.<locals>.MyGenExtreme.support  s    && '+E]PPrF   c                l   t        j                  ||||      \  }}}}t        j                  |      }|dk(  }t        j                  ||   ||   z
   ||   z        ||<   d||    ||    ||    z
  z  ||    z  z
  d||    z  z  || <   d|z  |d|z
  z  z  t        j                  |       z  }|d   S Nr   rO   rr   rB   r  r  r  )r2   r7   r  r#  rH  tmaskr  s           r5   r   zKTestMakeDistribution.test_custom_variable_support.<locals>.MyGenExtreme.pdf   s    "$"5"5aB"F1b%MM!$Q&&1T7RX#5!6uT{!BC$D51dU8b$i#78uEEahJ 4% 51q1u:-bffaRj8bz!rF   c                J   t        j                  ||||      \  }}}}t        j                  |      }|dk(  }t        j                  ||   ||   z
   ||   z        ||<   d||    ||    ||    z
  z  ||    z  z
  d||    z  z  || <   t        j                  |       d   S r  r  )r2   r7   r  r#  rH  r  r  s          r5   r   zKTestMakeDistribution.test_custom_variable_support.<locals>.MyGenExtreme.cdf+  s    "$"5"5aB"F1b%MM!$Q&&1T7RX#5!6uT{!BC$D51dU8b$i#78uEEahJ 4% vvqbz"~%rF   N)	r   r   r   r  r}  r  ru  r   r   rr   rF   r5   MyGenExtremer    sH          Q Q"	"&rF   r  r   rO   r  r  r8   rT  gh㈵>r   )rB   r   r   r   r\  
genextremer   r   r   ru  r   r   r   r   r   r   r   r   r   )
r2   r  r   r  GenExtreme1GenExtreme2r  r  r7   r   s
             r5   test_custom_variable_supportz1TestMakeDistribution.test_custom_variable_support  s    ii##$452	& 2	&h --ln=--e.>.>?1!,1IIBCI(FF1I

bjjl3

bjjl>		RYY[1		!biil3q	266!9-		!biil3q	266!9-

1rzz!}5
BGGAJ/
BGGAJ/RXXa[1rF   r'         ?)r  r  r  g      @g       @r(   c                    t         j                  j                  d      } G d d      }t        j                  t        j
                        }t        j                   |             }|||z   z  }||z   } |||      } |||      }	 |||      }
|
j                  d|      }|
j                  |      }t        |j                         |
j                                t        |j                         |
j                                t        |j                  |      |
j                  |             t        |j                  |      |
j                  |             t        |j                  |      |
j                  |             t        |j                  |      |
j                  |             t        |j                  |      |
j                  |             t        |	j                         |
j                                t        |	j                         |
j                                t        |	j                  |      |
j                  |             t        |	j                  |      |
j                  |             t        |	j                  |      |
j                  |             t        |	j                  |      |
j                  |             t        |	j                  |      |
j                  |             y )NrS  c                   P    e Zd Zed        Zed        ZddZed        Zd Zd Z	y)	KTestMakeDistribution.test_custom_multiple_parameterizations.<locals>.MyBetac                      yr{  rr   r|  s    r5   r}  ziTestMakeDistribution.test_custom_multiple_parameterizations.<locals>.MyBeta.__make_distribution_version__P  r~  rF   c                 v    dt         j                  fdt         j                  fdddt         j                  fdfS )Nr   r&   rm   r#  nur  r|  s    r5   r  zVTestMakeDistribution.test_custom_multiple_parameterizations.<locals>.MyBeta.parametersT  s6     bff+QK8!!RVV5 rF   Nc                 J    ||||||z   }||z  }n
||z  }||z
  }||||dS )N)r'   r(   r#  r  rr   )r2   r'   r(   r#  r  s        r5   process_parametersz^TestMakeDistribution.test_custom_multiple_parameterizations.<locals>.MyBeta.process_parameters[  sF    =Q]rzbjQBRBRAQAQb;;rF   c                 
    ddiS )Nr*   rm   rr   r|  s    r5   ru  zSTestMakeDistribution.test_custom_multiple_parameterizations.<locals>.MyBeta.supportd  s    #V,,rF   c                 D    t         j                  j                  |||      S N)r   _ufuncs	_beta_pdfr2   r7   r'   r(   r#  r  s         r5   r   zOTestMakeDistribution.test_custom_multiple_parameterizations.<locals>.MyBeta.pdfh  s    00Aq99rF   c                 0    t        j                  |||      S r  )r   betaincr  s         r5   r   zOTestMakeDistribution.test_custom_multiple_parameterizations.<locals>.MyBeta.cdfk  s    q!Q//rF   )NNNN)
r   r   r   r  r}  r  r  ru  r   r   rr   rF   r5   MyBetar  O  sK         < - -:0rF   r  r&   r  r8   rT  )rB   r   r   r   r\  rx   r   r   r   ru  r   r   r   r   r   )r2   r'   r(   r   r  Betar#  r  r  r%  Zr7   r   s                r5   &test_custom_multiple_parameterizationsz;TestMakeDistribution.test_custom_multiple_parameterizationsJ  s    ii##$45	0 	0> &&uzz2((2!a%[UQ!bR 1NHH23H'EE!H		QYY[1
AHHJ/a!%%(+a!%%(+q	166!9-q	166!9-
AGGAJ/		QYY[1
AHHJ/a!%%(+a!%%(+q	166!9-q	166!9-
AGGAJ/rF   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.z&The argument must be an instance of...)	r-   r.   r  r   r\  rC  rA  r  r  r2   r4   s     r5   r  z*TestMakeDistribution.test_input_validation  s    3]].g> 	7##E$5$56	7 1]].g> 	4##ENN3	4 ;]]: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_namesr:   r  zGamma(a=2.0)2zGamma(a=np.float64(2.0))Gamma)rx   zHalfGeneralizedNormal(beta=2.0)z+HalfGeneralizedNormal(beta=np.float64(2.0))HalfGeneralizedNormal)(scipy.stats._distribution_infrastructurer  keyshasattrr   r\  gammar   rB   __version__repr__doc__r9  )r2   r  r   s      r5   test_repr_str_docsz'TestMakeDistribution.test_repr_str_docs  s    P',,. 	(D5$'''	( &&u{{34!9~///>>S q	?&@@@@$,,&&&&&u'8'894Q< $EEEE>>S !%)VVVV&$,,666rF   N)r   r   r   r-   r   r   	enumerater   r   rv  r  r   filterwarningsrB   ru   r  r  r  r  rr   rF   r5   r(  r(  S  s!   [[]Ih6M,NOd+ Pd+L<K@ [[[[ 89[[S2q!ZRZZ8P-Q"RSJ2 T : J2X [[[[S3


3L(M"NO[[S3


3L(M"NO<0 P P <0|.7rF   r(  c                      e Zd Zd Zd Zej                  j                  d       e e	j                          e	j                  d            ej                  j                  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                  dd      }d}t        j                  t        |      5  t        j
                  |       d d d        y # 1 sw Y   y xY w)Nr8   r  )r  r   z@Transformations are currently only supported for continuous RVs.r+   )r   r"   r-   r.   r  r  )r2   r  r4   s      r5    test_ContinuousDistribution_onlyz/TestTransforms.test_ContinuousDistribution_only  sI    NNR3' U]].g> 	IIaL	 	 	s   AAc                    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,' rn   )lbubr;   r8   rW  r  r  rr  rs  r;   r8   )'rB   r   r   minimummaximumr   truncater    	truncnormre  r   r   r   r   r   r   rc  r   r   r  r  sqrtr   r   ru  r   r   rb  r   r   rd  r   r   r   ra  r  r   r   rM  )	r2   r   r  r  r%  Y0r   r   r   s	            r5   test_truncatezTestTransforms.test_truncate  s   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4rF   r8   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 r  )r>  __init__r   )r2   r	  r  rB  s      r5   r  zATestTransforms.test_loc_scale.<locals>.TransformedNormal.__init__  s     !1CDCFCrF   )r   r   r   r  rC  rD  s   @r5   TransformedNormalr    s    D DrF   r  )rO   r   r   r   rO   )r   rI   )locscaler   r   r:   r  r}   r  r  r  )'rB   r   r   r   r   r  r  r   r   normru  r   r   r  r   r   r   r   r   r   r  r   signr   r   r   r   r   r   r   r   r  r   r   r   r  r  r  rw  )r2   rM   r   r   r  r   r   r7   r   r   r   r`   r   r   r  r  dist0dist_refx0y0r'   r(   a0b0r   zs                             r5   test_loc_scalezTestTransforms.test_loc_scale  s   
 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r}   exp_powr  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 )Nr  rn   r  )r  r  r  r  rr  rs  r;      M [ r   )%rB   r   r   r    r   r  elognormre  r   r   r   r   r   r   rc  r   r   r  r  r  r   r   ru  r   r   rb  r   r   rd  r   r   r   ra  r  r   r   )r2   r  r   r#  rH  r  r%  r  r   r   r   s              r5   test_exp_powzTestTransforms.test_exp_pow=  s    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GrF   r  )rO   r:   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)Nr  rn   r  r   r  rT  r   r   r  r   )rB   r   r   r  r  r   r\  rI  r   r   r   r   r   r   r   r   ru  r   r   r   r   r   r   r   r   r  r   )r2   r  r   r'   r  InvGammar  r  r%  r   r   r   r   s                r5   test_reciprocalzTestTransforms.test_reciprocale  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)Nr  rn   r  r  r  r  rr  rs  r;   r   )r   r  r   )$rB   r   r   r   r   loggammar   re  r   r   r   r   r   rc  r   r   r  r  r  r   r   ru  r   r   rb  r   r   rd  r   r   r   ra  r   r  r   r   )	r2   r   r'   r  r  r%  r   r   r   s	            r5   test_logzTestTransforms.test_log  s   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)NrO   r:   r&   zUniform(a=1.0, b=2.0)zlog(r   z1/(zexp(r=  z=Division by a random variable is only implemented when the...r+   zBThe logarithm of a random variable is only implemented when the...z@Raising an argument to the power of a random variable is only...r        ?z=Raising a random variable to the power of an argument is onlyr   )r!   r   r   r   r  r-   r.   r  )r2   r  X_strr4   s       r5   test_monotonic_transformsz(TestTransforms.test_monotonic_transforms  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(\?r;   d   r&   )rB   r   r   r   r   r   r   r   )	r2   r   r'   r(   r  r  r7   r%  r  s	            r5   test_arithmetic_operatorsz(TestTransforms.test_arithmetic_operators  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":;rF   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 )Nr  rn   r  r  r  r  rr  rs  r;   r8   r   )%rB   r   r   r   r  r    foldnormre  r   r   r   r   r   r   rc  r   r   r  r  r  r   r   ru  r   r   rb  r   r   rd  r   r   r   ra  r  r   r   rM  )r2   r   r  r%  r  r   r   r   s           r5   test_abszTestTransforms.test_abs  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!!!rF   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 )Nr:   r  rO   )r   r\  weibull_minr  r   r   r   r   r   r   r   )r2   Weibullr  r%  s       r5   test_abs_finite_supportz&TestTransforms.test_abs_finite_support  s     ))%*;*;<aLGQXXa[!((1+.QUU1XquuQx(QXXa[!((1+.QUU1XquuQx(QYYq\199Q<0QVVAYq	*rF   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 )Nr  r:   rO   )dfr8   r  r  r}  r   rr  rs  r;   r   )$rB   r   r   r    r   chi2re  r   r   r   r   r   r   r   r   r  r  r  r   r   ru  r   r   rb  r   rc  r   rd  r   r   r   ra  r  r   r   rM  )r2   r   r%  r  r   r   r   s          r5   test_powzTestTransforms.test_pow  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!!!rF   N)r   r   r   r  r  r-   r   rY  r   r   rM   r   r   r  r   r  xfail_on_32bitr  r   r  r	  r  r  r  rr   rF   r5   r  r    sJ    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<$"@+"rF   r  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   rO   r&   r}   r;   )r  rr  r  rr  rz  r  rs  r  r  r  r   r   r   r   z0`r` and `n` must contain only positive integers.r+   r=  r  )&rB   r   r   r!   ru   r   order_statisticrx   re  r   r   r  r   r   r   r   r  r   r   r   rc  ru  r   r   r   r   r   r   r   ra  r   r  r   r   rd  r-   r.   r  )
r2   r   r  r  r  r%  r  r   r   r4   s
             r5   test_order_statisticz'TestOrderStatistic.test_order_statistic4  s   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 )Nr}   r:   r;   r  r  )r   r\  r   r  r   ru  )r2   r!   r  r%  r  s        r5   test_support_gh22037z'TestOrderStatistic.test_support_gh22037_  sV     ))%--8IaC!G!!!qA.		QYY[1rF   c                    t        j                  t         j                        }t        j                  t         j                        }ddgd}}ddgdgg}}dggdggg} |       }t        j                  |||      }	t        j
                  |	||	      }
 |||
      }t        j
                  |||	      }t        j                  j                  |
j                  |      |j                  |             y )Nr  r=  rO   r;   r<   r}   g333333ӿr   r  r&   )
r   r\  r  r  r  r  rB   rf  r   r   )r2   r    TruncatedNormalr'   r(   r  r  r7   r  Y1Z1r  Z2s                r5   test_composition_gh22037z+TestOrderStatistic.test_composition_gh22037i  s    
 ((411%//BBx1A3*1fXwX^^B1%""2a0qA&""2a0


""266!9bffQi8rF   N)	r   r   r   r-   r   rY  r  r  r$  rr   rF   r5   r  r  3  s.    [[2(1 (1T29rF   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.   r  r   rD   r0   __str__r|  s    r5   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.   r  r   validater|  s    r5   test_ParameterzTestFullCoverage.test_Parameter  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=  rO   r7   rU   r  g      @r  r  TF)r   r   rB   ru   r,  r   )	r2   r.  r/  r3   r  r7   arrrg  r  s	            r5   "test_RealParameter_uncommon_dtypesz3TestFullCoverage.test_RealParameter_uncommon_dtypes  sp     w'"3v6	JJSz2%..q2.FUES!	!!!UT5M*rF   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>.TestDistr7   )r  r  r)   rU   c                      y)Nr   rr   r2   r7   r	  r  s       r5   _logpdf_formulaz^TestFullCoverage.test_ContinuousDistribution_set_invalid_nan.<locals>.TestDist._logpdf_formula  s    rF   N)r   r   r   r   r   r   r8  rr   rF   r5   TestDistr5    s    &s=83TUIrF   r9  r  r  )r   rB   float32rh  ru   r   rg  )r2   r9  r  rg  r7   s        r5   +test_ContinuousDistribution_set_invalid_nanz<TestFullCoverage.test_ContinuousDistribution_set_invalid_nan  sV    
	- 	
 J

JJuE*xx{  E)))rF   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  rO   )r   rB   float64maxfinfoint64iinfor|  s    r5   test_fiinfozTestFullCoverage.test_fiinfo  sj    rzz"~&**bhhrzz.B.F.FFFFrxx{#''288BHH+=+A+AAAArF   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   )r2   msgs     r5   test_generate_domain_supportz-TestFullCoverage.test_generate_domain_support  sJ    &~63s:::&v.-444&{3.#555rF   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   rO   r&   r  zUniform(a=0.0, b=1.0)z-Uniform(a=np.float64(0.0), b=np.float64(1.0))r;   r:   z3.0*Uniform(a=0.0, b=1.0) + 2.0zOnp.float64(3.0)*Uniform(a=np.float64(0.0), b=np.float64(1.0)) + np.float64(2.0)r<   z'Uniform(a=array([0., 0., 0., 0.]), b=1)r  z[Uniform(a=array([0., 0., 0., 0.], dtype=float32), b=array([1., 1., 1., 1.], dtype=float32)))r!   rB   r  r  r  r:  r  )r2   r  s     r5   #test_ContinuousDistribution__repr__z4TestFullCoverage.test_ContinuousDistribution__repr__  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
 	
 
rF   N)r   r   r   r*  r-  r-   r   r   rB   float16int16r=  r2  r;  rB  rE  rG  rr   rF   r5   r&  r&  {  sl    "* [[6 "

BJJ7 ""**578+8+* B6
rF   r&  c                   (   e Zd Z edd      Z e ej                  d       ej                  d            Z edd      Z	 edd      Z
 e ej                  d      d      Zej                  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   rO   r&   r  r  r=  r"  i  r   r  r  z#numpy 1.x didn't have dtype in repr)reason)marksr:   r  r;   r<   r}   r  g?g?g333333?r   weightsr  c                    ddl m} ddl m} ddlm}m}m}m}m} ddlm	}	m
}
 ddlm} t        t        |            }|j                  dd	      }|j                  dd	      }t!        ||       |j"                  |j"                  u sJ y )
Nr   )array)r:  )r  r  r   r  r  )r   r    )r!   r8   i  rT  )numpyrQ  r:  scipy.statsr  r  r   r  r  r   r    scipy.stats._new_distributionsr!   r^   r  r   r   rg  )r2   r   rQ  r:  r  r  r   r  r  r   r    r!   new_distrr  rs  s                  r5   test_executablezTestReprs.test_executable  si    L 	 !HH/:T
#++BD+1///5Wg&}}---rF   c                 6    t        t        |            dk  sJ y )N   )lenr  )r2   r   s     r5   test_not_too_longzTestReprs.test_not_too_long  s    $ 4:$$$rF   N)!r   r   r   r!   UrB   r:  Vr    r  r%  r  r  r-   r   r   rQ  paramskipifr  r  r=  r   r  r  r   r  r  r   rV  fullarangerZ  rr   rF   r5   rK  rK    s   !qA*"**S/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	
%%rF   rK  c                   b    e Zd Z ed eej                   ej                  f            Zd Zy)	MixedDistr7   r)   rU   c                 <   ddt        j                  dt         j                  z        z  z  t        j                  d|dz   dz  dz  z        z  ddt        j                  dt         j                  z        z  z  t        j                  d|dz
  dz  dz  z        z  z   S )	N皙?皙?r:         g      ?333333??r  )rB   r  rC   r  r7  s       r5   _pdf_formulazMixedDist._pdf_formula  s    rwwqw//0266$4q?P:P3QQ3255!112RVVD1S5#+PQAQ<Q5RRS 	TrF   N)	r   r   r   r   r   rB   r   r   ri  rr   rF   r5   rb  rb    s(    s=RVVGRVVCT+UVITrF   rb  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...rF  z5All elements of `components` must have scalar shapes.rO   r:   )r#  z5`components` and `weights` must have the same length.r  rN  z)`weights` must have floating point dtype.z`weights` must sum to 1.0.r  z#All `weights` must be non-negative.r  rf  )r-   r.   r  r   r    r  s     r5   r  z!TestMixture.test_input_validation#  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re  rr   )r8   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-@      пre  r"  r  rh  rd  rg  rN  c                     dk(  rt        j                  |       sJ t        j                  j                  | |fi | y )Nrr   )rB   ri  rf  r   )rg   rj   r  re  s      r5   r   z/TestMixture.test_basic.<locals>.assert_allcloseL  s5    {{{3'''JJ&&sC:6:rF   r  r}   r  rz  r  )r8   r   r}   r   g?)!rB   r   r   r   r    rb  r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r  r   r   r   r  r  r   re  r   ks_1sampravelr  )
r2   re  r   r  r%  r7   r   r  r  r   s
    `        r5   
test_basiczTestMixture.test_basicD  s   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===rF   c                 :   d}t        j                  t         j                        } ||      }t        j                  || f      }t	        j
                  ddd      }t        |j                  |      t        j                  |      j                  |             y )Nre  r  r<   rT  )	r   r\  r  r   rB   r\   r   r   dgamma)r2   r'   r  r  r%  r7   s         r5   test_default_weightsz TestMixture.test_default_weightsp  sp    ''4AJMM1qb'"KKAs#a%,,"3"7"7":;rF   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)Nrn  re  r"  r  rh  ro  rN  r8   rO   r   )r    r   r-   r.   r$  
componentsrO  )r2   ry  rO  r  s       r5   test_propertieszTestMixture.test_propertiesx  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Rr8   r=   )rB   r   r   r   r\  cauchyr   rf  r   r   r   r  r   )r2   r   CauchyX0r  r   s         r5   test_inversezTestMixture.test_inverse  s     ii##$;<((6XMM2r(#JJBJ


""166!9bggaj9


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


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


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