
    >qjv             
       @   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+m,Z, d dl-m.Z.m/Z/m0Z0 d dl-m1Z1 d dlm2Z2m3Z3m4Z4m5Z5  G d d      Z6d>dZ7e.e2e3e4e/gZ8e5gZ9e8e9z   Z: G d d      Z;d Z<d Z=d Z>d Z?d Z@d ZAd ZBd ZCe	j                  j                  de2f      e	j                  j                  d eF       dg      e	j                  j                  d  eF       d!g      e	j                  j                  d"d#g      e	j                  j                  d$ej                  j                  ej                  ej                  g      d%                                    ZKd& ZLd' ZMd( ZNd) ZO G d* d+      ZP G d, d-      ZQ G d. d/      ZR G d0 d1      ZS G d2 d3      ZT G d4 d5      ZU G d6 d7e'      ZV G d8 d9      ZWd: ZX G d; d<      ZYd= ZZy)?    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_logexpxmexpy)StandardNormal_LogUniform_Gamma)DiscreteDistribution)NormalLogisticUniformBinomialc                      e Zd Zej                  j                  d      Zd Zej                  j                  dej                  ddd      ej                   ej                  g      d        Zej                  j                   e ej$                  dd	
       ej(                          ej(                          ej*                               d               Zej                  j                  d e ej2                  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j8                   ej:                  d       ej<                  d       ej>                   ee jB                                     ej8                   ej:                  d       ej<                  d       ej>                   ee jB                                     ej(                          e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      `/opt/rentech/trading_bot/.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)r4   r9   r)   r*   r5   s        r7   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     @@)elementsr:   r(   rC   r)   r5   r*   z<=<z(a z	 x) & (x z b))r3   drawnpstarraysfloating_dtypesrE   concatenatelinspacer   define_parametersr   rG   evalr   )r4   rM   rN   rO   rP   input_shapesresult_shapeshape_ashape_bshape_x
a_elements
b_elementsr)   r*   dr9   r5   resleft_comparisonright_comparisonrefs                        r7   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#rI   rD   TFr<   )repeatza,br   rR   r=   rR   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     r7   <lambda>zDTest_RealInterval.test_contains_function_endpoints.<locals>.<lambda>^   s    1q5A+ rI   c                     | |z   dz  S rt   ru   r(   s     r7   rv   zDTest_RealInterval.test_contains_function_endpoints.<locals>.<lambda>^   s    QUaK rI   rC   r<   r(   r   rR   )r   rE   asarrayrG   r3   r2   r   )r4   rD   r)   r*   r,   r5   r9   rj   numerical_endpointsalphabeta
above_leftbelow_rightrm   s                 r7    test_contains_function_endpointsz2Test_RealInterval.test_contains_function_endpointsZ   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#rI   casez(-\infty, \pi])r)      TFz[a, 5)c                 P    t        |d d |dd       }t        |      |d   k(  sJ y )Nr<   r>   rC   )r   str)r4   r   r5   s      r7   test_strzTest_RealInterval.test_strm   s2    
 bqT!AYG6{d1g%%%rI   )rS   L)whitelist_categories)r)   r*   rN   rO   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[(])rC   , )r   symbolsgetr   r   )	r4   r)   r*   rN   rO   left_bracketright_bracketr5   rm   s	            r7   	test_str2zTest_RealInterval.test_str2u   s     OO1%OO1%)ss*!Q(3['ACqcA3}o66{c!!!rI   c                 h    t        d      }t        d      }|j                  |j                  usJ y )Nrp   r+   )r   r   )r4   domain1domain2s      r7   test_symbols_gh22137z&Test_RealInterval.test_symbols_gh22137   s.      &1&1goo555rI   N)$__name__
__module____qualname__rE   randomdefault_rngrngr8   r/   markparametrizeuniformr   rF   rH   slowr   r[   mutually_broadcastable_shapesr   booleansrP   rn   listitproductr~   r   one_ofdecimals
characterssampled_fromr   r   r   r   ru   rI   r7   r&   r&      sN   
))


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**,

"
 
"6rI   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   rR   )rV   rJ   )r   proportionsi_parameterizationr   rL   typical)parameter_valuesr   r   regionrp   TTprX   )r   r   ignoredivideinvalid)_num_parameterizationsrZ   r   integers_num_parametersr[   r   _drawtuplebroadcastable_shapes	_variable_parametersrE   broadcast_shapesr   r   errstatelog)familyrP   r   r   rL   n_parameterizationsin_parametersrM   rc   distx_shaper9   x_result_shapey_shapeyxy_result_shapep_domainp_varr   logps                        r7   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                      e Zd Zej                  j                  d       ed      ej                  j                  de       e	 e
j                          e
j                  d            d                             Zej                  j                  d	      ej                  j                  de      ej                  j                  d
dddhdfdddhdfddhdfddhdfddhdfddhdfddhdfddhdfddhdfddhdfdh ddfdh ddfdh ddfd h ddfd!d"d#hd$fd%d"d#hd&fg       ed       e	 e
j                          e
j                  d            d'                                    Zd( Zej                  j                  d)dd g      d*        Zej                  j                  d)dd g      d+        Zd, Zd- Zd. Zej                  j                  d)ddg      d/        Zy)0TestDistributions<      max_examplesr   r   rU   rP   seedc                    t         j                  j                  |      }d}t        ||||      }|\  }}}	}
}}}}|j	                  t        j                  ddd            }t        j                  dd      5  t        |       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_dimsrL   max_sider   r   r   samplerR   ri   r   )rE   r   r   r   rZ   r[   array_shapesr   check_supportcheck_moment_funcscheck_lmoment_funcscheck_sample_shape_NaNsr   Halton)r4   r   rP   r   r   r   tmpr   r9   r   r   r   rc   r   r   sample_shapeqrngs                    r7   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l3#D(L,PST::,D#D(L,PTU	V 	V 	Vs   9ACC$r:   zfunc, methods, argentropylog/exp
quadratureN
logentropymedianicdfmodeoptimizationmeancachevarianceskewnesskurtosispdfr9   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   )r9   r   r   r   )r   r   overr   r<   r   r   FTr   addition)r#   r/   skiprE   r   r   r   r   check_dist_funcr   standard_deviationr   
isinstancer   
check_cdf2check_ccdf2)r4   r   rP   r   funcmethodsargr   r   r   r   r9   r   r   r   rc   r   r   argss                      r7   
test_funcszTestDistributions.test_funcs   s   . WKKABii##D) ++FD#{KMPJaAt\>?Q*[[(J 	P{dD,HdDI~wO		P :D335q8$--/J [[(J 		Ld$=>5=+nGtUAq/7KtT1a'JV^)lGeQ?GLdAq/7K		L 		L	P 	P		L 		Ls   <)E 5A"E, E),E5c                     	 dd l m} t        dd      }|j	                         }||j                         k(  sJ y # t        $ r Y y w xY w)Nr                 ?r(   )matplotlib.pyplotpyplotImportErrorr#   plotgca)r4   pltXaxs       r7   	test_plotzTestDistributions.test_plot  sI    	+ bBVVXSWWY  		s   ; 	AAmethod_namec                 Z   t        j                  dd      }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 )NrR   r<   musigma-q=-C6?MbP?r   formulamethodcomplement_safer   r   rtolr   r!   tolrE   rx   getattrr   r   )	r4   r  r  r   r  ifuncr9   p1p2s	            r7   test_complement_safez&TestDistributions.test_complement_safe!  s    LLAQ'JJd|$q+&3{?+!I&!-.!L)RUBqE"!u1~~1qt!%%0rI   c                 R   t        j                  dd      }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 )NrR   r<   r  r!  r"  r#  r   r'  r%  r   r   r(  r*  )r4   r  r  r   r  r-  x1x2s           r7   test_icomplement_safez'TestDistributions.test_icomplement_safe/  s    LLAQ'JJd|$q+&3{?+1./1\*RUBqE"!u1~~RUQqT6rI   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!  )r:      )r7  r6  r8  r:   r   r%  subtraction_safesubtractionr(  )#BǻO
㒻#B;O
;r;  )r<  r;  r>  r=  r=  r   )	r   r!   r+  r   r   r   rE   rx   r   )r4   r  r9   r   p0r.  r/  s          r7   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+rI   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   ru   )rE   rx   super_entropy_formular   )r4   paramsout	__class__s      r7   rG  zHTestDistributions.test_logentropy_safe.<locals>._Normal._entropy_formulaW  s9    jj!9!CF!CDA&&B
rI   )r   r   r   rG  __classcell__rJ  s   @r7   _NormalrC  V  s     rI   rM  rR   r<   r=   r   r   r   logexp_safer%  logexpr   r   rE  rR   )r   r!   rE   r   r   isinfallr   )r4   rM  r  res1res2rm   i_fls          r7   test_logentropy_safez&TestDistributions.test_logentropy_safeT  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)NrN  rO  )rR   ,  )ir<   -  r   rP  rQ  r%  rR  r   r   rE  rR   )r   r!   rE   r   r   rS  rT  r   )r4   r  r9   r   rU  rV  rm   rW  s           r7   test_logcdf2_safez#TestDistributions.test_logcdf2_safei  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<   rO  r   rZ  rR   r\  r   rP  rQ  r%  rR  r   r   )r   r!   r,  rE   r   )r4   r  r  r9   r  rU  rV  rm   s           r7   test_logexp_safez"TestDistributions.test_logexp_safey  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   rP   r   r   r  r  r0  r4  r@  rX  r]  r_  ru   rI   r7   r   r      sc   [[22[[Xx0

!(;
(;(;a(HIV J 1  V$ [[2[[Xx0[[1(9l*CTJ+i-FM'&48%'7>%y$7)G9d;)G9d;)G9d;$yk37')c:')PRUV$&MsS(*QSVW%'NPST)L++FO&{(CSI !$ 2

!(;
(;(;a(HIL J %! 1 ,LB [[]UFO<1 =1 [[]UFO<
7 =
7,0,*,  [[]Xy,AB! C!rI   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   ru   *   )r   
_overridesr  r   	QMCEngineaddrE   broadcast_toget_valid_parametersshaper   testingdtype_dtypeisscalarrT  isfinitenanr    anyequal)r   fnamer   rc   r   
full_shapesample_methodr  r&  rj   valid_parameterssample1sample2s                r7   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&/'rI   c                 :   | j                         \  }}t        | dd |       t        | dd |       |j                  | j                  k(  sJ |j                  | j                  k(  sJ |j                  | j
                  k(  sJ |j                  | j
                  k(  sJ y )Nsupport)r|  check_nans_and_edgesrl  _shapern  ro  )r   r)   r*   s      r7   r   r     s    <<>DAqy$2y$277dkk!!!77dkk!!!77dkk!!!77dkk!!!rI   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׊>rd  re  r$  r   )r   copyr/   r0   NotImplementedErrorr,  r}  rg  ri  rE   rm  r   rl  rp  r   exprn  )
r   ru  r  rc   r  r  rm   tol_overrider&  rj   s
             r7   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_formular:  _cdf_formula_ccdf_formular   _cdf2_formulaUTwo argument cdf functions are currently only supported for continuous distributions.r-   r%  +=r                  )r  rg  ri  r   rE   rm  r   rl  r   rp  r  r    r/   r0   r  r  r   r   rn  
r   r   r9   r   rc   r  rm   r&  r6   rj   s
             r7   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)Nrd  r    ccdf2_formular$  r  r-   r%  r  r  )r  rg  ri  r   r   rE   rm  r   rl  r   rp  r  r    r/   r0   r  r  r   r   rn  r  s
             r7   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r/t        j                   |||dk(  z           j#                         sJ y y )N>   r   r  rp   r   rC   >   ilogcdfr   r   rE  rR   >   r   >   r   >   r   >   r   >   r   >   r   >   r   r  >   r  r   >   r   r  r|  r   r  r   r   )rk  r   r   r   r5   classify_argrE   broadcast_arraysr   rr  r|  rj  rl  r  r    updaterq  rT  )r   ru  r  rj   rx  
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_discreterm   excludes                        r7   r}  r}  >  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()G{{3yLA,=>?@DDFFF rI   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 ]k  } ||ddd	        j                  |dd
      ||dz  z  z  }|j                  |k(  sJ  ||dd| ||d      	        ||dd||dk  	        ||dd|       m  j                          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%  r:   r  )momentr   rl  r/   r0   r  )orderkindr&  rm   successrj   r  r   s         r7   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_re  Forders   )rg  r,  setrange)r  r  formula_name	overridesr$  r  r   s         r7   has_formulaz'check_moment_funcs.<locals>.has_formula  sQ    !$x0OOL1	$-(CaM:rI   r  rawr   Fr  r   r%  r  r$  generalr   quadrature_icdfcentralrR   r<   	transformstandardizedr   r=   	normalize)NNT)reset_cacher  r  r}  rl  rJ  r   r!   r#   r   rE   rs  )	r   rc   r  r  r   rm   r   varr  s	   `       @r7   r   r     s    D8 	 1X 	Ba/kk!U<k8T8T37yyL(((awT2a	3Au0EFa	3a9>>U\\)!U-sDA	B 	 	KK9KK91a[ *kk!U<k8aS!!Y/Q;q.3Q	SAy!aS)* 	 1X 2aGU3kk!Y|k<yyL(((aGS$7aIsK94MNaIsAF;>>U\\)!Y 13E%--/AF !YS%a/;AF=1e$KK5!!YS1#2& }}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aCa@ac23 	rI   c           
          t         t              s8d}t        j                  t        |      5   j                  d       d d d        y dd fd	}d}t        dd      D ]  } |||d	|
        j                  ||d      }t         dd |       |j                  |k(  sJ  |||d	|d
        |||d| j                  d      xr  |dk  xs  j                  j                  dk(  
        |||d||dk(  
        j                  d      s |||d|d
        d}t        dd      D ]  } j                  ||d      }|j                  |k(  sJ  |||d| j                  d      xr  |dk  xs  j                  j                  dk(  
        |||d|d
        j                  d      s |||d|d
        y # 1 sw Y   y xY w)Nz8L-moments are currently available only for continuous...r-   rR   g&.!>FTc                 
   |r>j                  | ||      }t        ||       |j                  |j                  k(  sJ y t        j                  t
              5  j                  | ||       d d d        y # 1 sw Y   y xY w)Nstandardizer&  r  )lmomentr   rl  r/   r0   r  )r  r  r&  rm   r  rj   r  r   s         r7   r  z"check_lmoment_funcs.<locals>.check
  st    ,,u+f,MCC4099		)))23 LUFKL L Ls   A99Br  r   r  order_statisticsr  r  r$  _lmoment_formular   r#   r  _icdf_formular  r=   )FNNT)r  r   r/   r0   r  r  r  r}  rl  rg  rJ  r   )r   rc   r6   r  r  r   rm   r  s   `      @r7   r   r     s    d23L]].g> 	LLO	DL K1a[ Hag{;ll1+>PlQT9dC8yyL(((agsD9aioo&89 Jq5HDNN$;$;y$H	K 	aiqAv????+!["3S$GH K1a[ Hll1+>PlQyyL(((aioo&89 Jq5HDNN$;$;y$H	K 	aie<???+!["3S$GHA	s   GGr   r   )r<   r=   
dist_shape)r>   rR   ru  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   rR   r   r   )axisF)r   g{Gz?)rE   r   r   r   r/   r  r   r   	Generatorrl  r   r   r@   sum)r   r  r   ru  r  r   num_parametersr   nsample_sizesample_array_shaperw  r9   	statisticpvaluep_thresholdnum_pvaluesnum_small_pvaluess                     r7   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8rI   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rn  r   )r   _parameterizationsr  
parametersrE   onesr~  boolitemsr5   r2   rD   r   rG   _invalid)r   r   r  parameterizationr  namevalue	parameterr)   r*   
a_included
b_includedvalids                r7   rk  rk  R  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]]+rI   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  rE  rR   )rE   r  r~  r  zerosr2   r   r  rD   rl  intisnan)r   r  r  
valid_argsendpoint_argsoutside_argsnan_argsr)   r*   r  r  insideonoutsiderr  s                  r7   r  r  y  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##rI   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}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   Jx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   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   cx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>.Testr9   rX   N)r   r   r   r   r   r   ru   rI   r7   Testr    s    "3}?	rI   r  z`The `Test` distribution family does not accept parameters, but parameters `{'a'}` were provided.r-   rR   r)   zAAttribute `tol` of `Test` must be a positive float, if specified.r+  rN  rE  zVArgument `order` of `Test.moment` must be a finite integer greater than or equal to 0.zWArgument `order` of `Test.lmoment` must be a finite integer greater than or equal to 1.r   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crX   ri   r9   N)
r   r   r   r   r   _p1_p2r   r  r   ru   rI   r7   Test2r     s<    S9S9/S9:"3}?	rI   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  ri   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/   r0   
ValueErrorrE   rx   rr  r  r   r  r   r1   objectr   )r  r6   r  r   s       r7   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<G	z	1 q 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.+, ,{ ! !   
  
 ) ) 
 
% %
 
) ), ,s   
M?NNN&
N35O /%O9O5O'
O41PP"PP(!P4?N	NN#&N03N= O
OO$'O14O>PPP%(P14P=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 )NrE  r<   r:   r(   rf  r   ru   )	r3   r#   r   pickleloadsdumpsr   rE   rT  )kwargsdist1dist2dist3rU  rV  res3s          r7   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$$,rI   c                   $    e Zd Zd Zd Zd Zd Zy)TestAttributesc                 B   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        ||       t        j                  |      }t        |j	                  d      |       |j                          t        |j	                  d      |       |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   x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/   r0   r  r   r  r   r   r  r  rE   rT  r  )r4   r   r6   r   cached_meanr  quadrature_means          r7   test_cache_policyz TestAttributes.test_cache_policy  s+   :6X]].g> 	&IIWI%	&yy{]].g> 	&IIWI%	& !]].g> 	&IIWI%	&yy{iiwi/[$' 		$TYYgY.<TYYgY.< ))<)8iiwi/[/266$/1222 'yy	y*iiwi/[/266$/1222]].g> 	&IIWI%	& D]]:W5 	* )D	* 	*O	& 	&	& 	&
	& 	&6	& 	&	* 	*s;   I"0I/-I<J	J"I,/I9<J	JJ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/   r0   r  r+  rE   rr  r   r   absr   )
r4   r9   r  r6   X1X2rm   rU  rV  r   s
             r7   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   rR   r(   r<   skip_all       @r  r  )r)   r*   validation_policyrE  c                       e Zd Zd Zd Zy)0TestAttributes.test_iv_policy.<locals>.MyUniformc                      yN	incorrectru   )r4   r  r  s      r7   rG  zATestAttributes.test_iv_policy.<locals>.MyUniform._entropy_formulaH      "rI   c                      yr*  ru   )r4   r  rH  s      r7   _moment_raw_formulazDTestAttributes.test_iv_policy.<locals>.MyUniform._moment_raw_formulaK  r,  rI   N)r   r   r   rG  r.  ru   rI   r7   	MyUniformr(  G  s    ##rI   r/  r+  r  )r  r  z/Attribute `validation_policy` of `MyUniform`...r-   r   )
r#   r   r&  rE   rx   r   r  r/   r0   r  )r4   r  r)   r*   r/  r6   s         r7   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)NrR   r<   r  r=   r   r:   )r   r!   r  r   r/   r0   AttributeError)r4   r  Ys      r7   test_shapeszTestAttributes.test_shapesY  s    LLAQ'LLQCq) ttqyyww!||ttAw!||wwqzQ ]]>* 	AD	 QttAw!||	 	s   CCN)r   r   r   r  r"  r0  r4  ru   rI   r7   r  r    s    ,*\1<,>rI   r  c                   0   e Zd Zej                  j                  d e 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ej                  j                   ed       e ej.                               d                      Zej                  j                  dddg      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                  |      }|j!                         D ci c]  \  }}|t        j"                  ||g       }}} |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/                         |       t1        |t        j2                        r=t+        t        j4                  |j7                               |j/                         |       t+        |j9                         |j9                         |       t+        |j;                         |||       t+        |j=                         |||       ||vrt+        |j?                         |||       ||vrt+        |jA                  d !      |||       t1        |t        jB                        rYt+        |jE                  |      |jE                  |      |       t+        |jG                  |      |jG                  |      |       nXt+        |jI                  |      |jI                  |      |       t+        |jK                  |      |jK                  |      |       t+        |jM                  |      |jM                  |      |       t+        |j'                  |      |j'                  |      |       ||	vr,t+        |jO                  |      |jQ                  |      |       t+        |jS                  |      |jU                  |      |       |j-                         \  }}t        jV                  ||      \  }}|jY                  |      }||dk(     ||dk(  <   |j[                  |      }||dk(     ||dk(  <   t+        |j]                  |      ||       t+        |j_                  |      ||       ta        d"      D ]F  } ||
j                  | i       vst+        |jc                  | d#$      |jc                  |       ||       H ta        d%d&      D ]<  } ||vst+        |jc                  | d'$      |j                  d| dz
           ||       > t1        |t        jB                        rYd(}!t+        |j%                  d|!      |je                  |jf                  t        j                  j                  |!      )      |       d d d        y c c}}w # 1 sw Y   y xY w)+Nr   >   argusksonekstwokappa4exponpowgenexpongompertz	exponweib	johnsonsb	kstwobign	powernormnorminvgausspowerlognormrecipinvgaussvonmises_linestudentized_rangeSCIPY_XSLOW0zSkipping as XSLOW>   vonmises	hypergeomlevy_stablepoisson_binomnchypergeom_fishernchypergeom_walleniusgh㈵>)r9  r:  rA  pearson3>   r9  r<  rO  >   chir9  r:  r<  invgammar@  rO  >   triangarcsinedlaplace	trapezoid
skewcauchy>   levyrz   levy_l
foldcauchy
halfcauchyparetorR  r;   r<  r9  r   rR      s4XF r:   rl  r   gHz>r!  r   r   mvskr(  )r)  r  excessr  r   r  r  r=   r>   r  l   1XS+- )r@   random_stateru   )4r  osenvironr   r/   r  r,  r   rM   r3   zipsplitrE   r   r   make_distributionr  rx   r   r   r   r   r|  r   r  rv_discreter  r   r   r   r   r   r   rv_continuousr   r   logpmfpmfr   r   logsfr   sfr  ppfisfr   r  r  r  rvsrl  )"r4   r   distdatadistnamer   custom_tolerancesskip_entropyskip_skewnessskip_kurtosisskip_logccdfskip_rawskip_standardizedr   rH  r   CustomDistributionkeyvalr  r3  r9   r   r)  r  mvskr)   rd  ref_ppfref_isfr  r   s"                                     r7   test_rv_genericz$TestMakeDistribution.test_rv_genericn  s.   A;! 2::>>-568t;KKK+, 
 
  '+T:#Z0F2$N z"|% (1uh'DHKKc$++++D18A;?@UWii##$45"44T:>DllnM(#s#rzz3*--MM((N6NHH23H'EE!H $$Xt4[[(; 8	+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&&q!,DAqeeAhGQiGAFOeeAhGQiGA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 < !17735993H3H3N !& !P%)+k8	+ 8	+ N8	+ 8	+s!   
"X8N1X> AX>B*X>>Yc           	      h   t         j                  j                  d      } G d d      }t        j                   |             } |dt         j
                        }t        j                  t        dd            }t        |      dt         j
                   dk(  sJ t        |      d	t         j
                   d
k(  sJ |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        |j1                  |	|      |j1                  |	|             2 B dD ]I  }
t/        dd      D ]8  }	|
r|	dk  rt        |j3                  |	|
      |j3                  |	|
             : K |j                  ddd      }|j                  ddd      }t        ||       t        j4                  ||k(        rJ t        |j7                  d      |j7                  d             |j7                  d      |j7                  d      k(  rJ t        |j3                  d      |j3                  d             |j3                  d      |j3                  d      k(  rJ y )Nr]  c                   \    e Zd Zed        Zed        Zed        Zd ZdddZd
dZ	d	 Z
y)6TestMakeDistribution.test_custom.<locals>.MyLogUniformc                      yN1.16.0ru   r4   s    r7   __make_distribution_version__zTTestMakeDistribution.test_custom.<locals>.MyLogUniform.__make_distribution_version__      rI   c                 X    dt         j                  fdddt         j                  fdddS )Nr   FFrC   r)   r(   rE   r   r  s    r7   r  zATestMakeDistribution.test_custom.<locals>.MyLogUniform.parameters  s.    ,-rvv;^T,/=~VX XrI   c                 
    ddiS )Nr,   r(   ru   r  s    r7   r|  z>TestMakeDistribution.test_custom.<locals>.MyLogUniform.support  s    #Z00rI   c                 d    d|t        j                  |      t        j                  |      z
  z  z  S )NrR   rE   r   )r4   r9   r)   r*   s       r7   r   z:TestMakeDistribution.test_custom.<locals>.MyLogUniform.pdf  s'    ARVVAY!6788rI   Nr   c                    |j                  |      }t        j                  t        j                  |      |t        j                  |      t        j                  |      z
  z  z         S )Nr?   )r   rE   r  r   )r4   rl  r)   r*   r   r   s         r7   r   z=TestMakeDistribution.test_custom.<locals>.MyLogUniform.sample  sH    KKUK+vvbffQi!rvvay266!9/D*EEFFrI   c                \    |dk(  r'|dk(  r!||z
  t        j                  ||z        z  dz   S y y )NrR   r  g|=r  )r4   r  r  r)   r*   s        r7   r  z=TestMakeDistribution.test_custom.<locals>.MyLogUniform.moment  s8    A:$%- ERVVAaC[0588 #0:rI   c                |   t        j                  ||z        }||z
  |z  }|dz
  |z  |dz   |z  z   |dz  z  }|dz  d|z  z
  dz   |z  |dz  d|z  z   dz   |z  z
  |dz  z  }|dz  d|dz  z  z
  d|z  z   dz
  |z  |dz  d|dz  z  z   d|z  z   dz   |z  z   |dz  z  }||||d}	|	j                  t        |      d       S )	Nr<   r     r=   r   x   r>   )rR   r<   r=   r>   )rE   r   r   r  )
r4   r  r)   r*   r~  l1l2l3l4lss
             r7   r  z>TestMakeDistribution.test_custom.<locals>.MyLogUniform.lmoment  s   FF1Q3K!eq[1ukQUaK/1a47!taczB!+q!taczB!.CCqAvM!tbAg~1,s2a7A1a4"Q$.49:=>!VDrb1vvc%j$//rI   )r  )r   r   r   propertyr  r  r|  r   r   r  r  ru   rI   r7   MyLogUniformr    sX        X X 1 19 26 G90rI   r  r  r(   r  zMyLogUniform(a=1.0, b=r   z-MyLogUniform(a=np.float64(1.0), b=np.float64(z))r:   r^  r  r  r  r   r  rB   rR   r=   r  r   r$  )rl  r   r&  rc  r%  r   r  )rE   r   r   r   rf  er  r#   r   reprr   r   r   r|  r   r   r   r   r   r   r   r   r  r  r  r  rT  r   )r4   r   r  
LogUniformr  r3  r9   r   r  r  r  sample_formulasample_inverses                r7   test_customz TestMakeDistribution.test_custom  sO   ii##$45#	0 #	0J ,,\^<
rtt$IIgb)*1v1"$$q9999AwI"$$rRRRR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 :<<	< ) 	KKq! K519		%[	 I !		%[	 IKK	K )D:MN766.N:;;;i0!&&&2MN666+qvv\v/JJJJ			3		):	;	=99I9.!))CT)2UUUUUrI   zignore::RuntimeWarningr  rE  r   rR   )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 )Nr]  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  ru   r  s    r7   r  zeTestMakeDistribution.test_custom_variable_support.<locals>.MyGenExtreme.__make_distribution_version__6  r  rI   c                     t         j                   t         j                  fddt         j                   t         j                  fdddt         j                  fdddS )Nr  rC   r   r  r  r   r  r  s    r7   r  zRTestMakeDistribution.test_custom_variable_support.<locals>.MyGenExtreme.parameters:  sL     *,'8~V*,&&"&&(9W,-rvv;^T rI   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   ru   rE   r  
empty_liker   r  r  r   results       r7   leftz]TestMakeDistribution.test_custom_variable_support.<locals>.MyGenExtreme.support.<locals>.leftD  sv    #%#6#6q"e#DLAr5]]1-F&(ffWF16N$&q1uIa!eqQx0G$GF1q5M!":%rI   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       r7   rightz^TestMakeDistribution.test_custom_variable_support.<locals>.MyGenExtreme.support.<locals>.rightK  st    #%#6#6q"e#DLAr5]]1-F%'VVF16N$&q1uIa!eqQx0G$GF1q5M!":%rI   r  rC   ru   )r4   r  r  s      r7   r|  zOTestMakeDistribution.test_custom_variable_support.<locals>.MyGenExtreme.supportB  s    && '+E]PPrI   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   rR   ru   rE   r  r  r  )r4   r9   r  r  r   tmaskr  s           r7   r   zKTestMakeDistribution.test_custom_variable_support.<locals>.MyGenExtreme.pdfT  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!rI   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  )r4   r9   r  r  r   r  r  s          r7   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"~%rI   N)	r   r   r   r  r  r  r|  r   r   ru   rI   r7   MyGenExtremer  5  sH          Q Q"	"&rI   r  r   rR   r  r  r:   r^  gh㈵>r(  )rE   r   r   r   rf  
genextremer   r   r   r|  r   r   r   r   r   r   r   r   r  )
r4   r  r   r  GenExtreme1GenExtreme2r   r!  r9   r   s
             r7   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[1rI   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 )Nr]  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  ru   r  s    r7   r  ziTestMakeDistribution.test_custom_multiple_parameterizations.<locals>.MyBeta.__make_distribution_version__  r  rI   c                 v    dt         j                  fdt         j                  fdddt         j                  fdfS )Nr   r(   rp   r  nur  r  s    r7   r  zVTestMakeDistribution.test_custom_multiple_parameterizations.<locals>.MyBeta.parameters  s6     bff+QK8!!RVV5 rI   Nc                 J    ||||||z   }||z  }n
||z  }||z
  }||||dS )N)r)   r*   r  r  ru   )r4   r)   r*   r  r  s        r7   process_parametersz^TestMakeDistribution.test_custom_multiple_parameterizations.<locals>.MyBeta.process_parameters  sF    =Q]rzbjQBRBRAQAQb;;rI   c                 
    ddiS )Nr,   rp   ru   r  s    r7   r|  zSTestMakeDistribution.test_custom_multiple_parameterizations.<locals>.MyBeta.support  s    #V,,rI   c                 D    t         j                  j                  |||      S N)r   _ufuncs	_beta_pdfr4   r9   r)   r*   r  r  s         r7   r   zOTestMakeDistribution.test_custom_multiple_parameterizations.<locals>.MyBeta.pdf  s    00Aq99rI   c                 0    t        j                  |||      S r  )r   betaincr  s         r7   r   zOTestMakeDistribution.test_custom_multiple_parameterizations.<locals>.MyBeta.cdf  s    q!Q//rI   )NNNN)
r   r   r   r  r  r  r  r|  r   r   ru   rI   r7   MyBetar    sK         < - -:0rI   r  r(   r  r:   r^  )rE   r   r   r   rf  r{   r   r   r   r|  r   r   r   r   r  )r4   r)   r*   r   r  Betar  r  r  r3  Zr9   r   s                r7   &test_custom_multiple_parameterizationsz;TestMakeDistribution.test_custom_multiple_parameterizations~  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/rI   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/   r0   r  r   rf  rL  rJ  r  r  r4   r6   s     r7   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         |d            dk(  sJ d|j                  v sJ t	        j
                  t        j                        }t         |d            d	k(  sJ t         |d            d
k(  sJ d|j                  v sJ y )Nr   )_distribution_namesr<   r  zGamma(a=2.0)zGamma(a=np.float64(2.0))Gamma)r{   zHalfGeneralizedNormal(beta=2.0)z+HalfGeneralizedNormal(beta=np.float64(2.0))HalfGeneralizedNormal)(scipy.stats._distribution_infrastructurer  keyshasattrr   rf  gammar   r  __doc__halfgennorm)r4   r  r   s      r7   test_repr_str_docsz'TestMakeDistribution.test_repr_str_docs  s    P',,. 	(D5$'''	( &&u{{34!9~///D1I"<<<<$,,&&&&&u'8'894Q< $EEEEDaL!%RRRR&$,,666rI   r   r   )rP   c                    t         j                  j                  d      }t        t        j                  |j                  d                  t        t        j                  |j                  d      dz              t        t        j                  |j                  d                   G fdd      }t        j                   |             }d}t        ||||d      }|\  }}}	}
}}}}d   t        j                  |j                        k  r%t        j                  |j                        d   k  sJ d   t        j                  |j                        k  r%t        j                  |j                        d   k  sJ d   t        j                  |      k  rt        j                  |      d   k  sJ y )	Nl   94-'+ r<   c                       e Zd ZdZej
                   ej
                  fW ddej
                  fW  ddZej
                   ej
                  fW dZd Zy)=TestMakeDistribution.test_draw_distribution.<locals>.MyNormalr  )r,   r   r   )ur~  c                     dt        j                  dt         j                  z        z  |z  t        j                  ||z
  |z  dz   dz        z  S NrR   r<   rE   sqrtrF   r  )r4   r9   r  r~  s       r7   r   zATestMakeDistribution.test_draw_distribution.<locals>.MyNormal.pdf  sC    2771RUU7++a/"&&AaC7Q,q2IIIrI   N)	r   r   r   r  rE   r   r  r|  r   )	s_typical	u_typical	x_typicals   r7   MyNormalr    sW    ,4)/1vvgrvv->9U./[YOQJ&(ffWbff$5)LGJrI   r  )r  r  r  r  rR   r   r   )rE   r   r   r   sortstandard_normalr   rf  r   minr  maxr~  )r4   rP   r   r  r   r   r   r   r9   r   r   r   rc   r   r   r  r  r  s                  @@@r7   test_draw_distributionz+TestMakeDistribution.test_draw_distribution  s]    ii##$78"''#"5"5a"89:	"''#**Q-/23	"''#"5"5a"89:		J 	J ((4'+FD#{UVWMPJaAt\>?|bffTVVn,)A,1NNN|bffTVVn,)A,1NNN|bffQi'BFF1I	!,DDD,DrI   r   Nru   c                      G fdd      }t        j                   |             } |       }|j                         t        j                   t        j                  fk(  sJ y )Nc                   ^    e Zd ZdZW  i nW  Zdej                   ej                  fiZd Zy)ATestMakeDistribution.test_no_parameters.<locals>.MyStandardNormalr  Nr,   c                     dt        j                  dt         j                  z        z  t        j                  |dz   dz        z  S r  r  r4   r9   s     r7   r   zETestMakeDistribution.test_no_parameters.<locals>.MyStandardNormal.pdf  s5    2771RUU7++bffadU1Wo==rI   )	r   r   r   r  r  rE   r   r|  r   )r   s   r7   MyStandardNormalr    s2    ,4) yaJ"bffWbff$56G>rI   r  )r   rf  r|  rE   r   )r4   r   r  r   r  s    `   r7   test_no_parametersz'TestMakeDistribution.test_no_parameters  sN    	> 	> 001A1CDyy{w////rI   )r   r   r   r/   r   r   r   	enumerater   r   r  r  r   filterwarningsrE   rx   r  r  r	  r  r
   r   r   rP   r  r  ru   rI   r7   r6  r6  m  s   [[]D8l;R1S,TUf+ Vf+PTVp [[[[ 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|.7 [[2

!"E #  E6 [[S4*-0 .0rI   r6  c                   X   e Zd Zd Zd Zej                  j                  d       e e	j                          e	j                  d            d               Zej                  j                  d      ej                  j                  d	d
dg      d               Zej                  j                  d      ej                  j                  dg d      ej                  j                  d      d                      Zej                  j                  d      d        Zd Zd Zd Zd Zd Zy)TestTransformsc                     t        j                  dd      }d}t        j                  t        |      5  t        j
                  |       d d d        y # 1 sw Y   y xY w)Nr:   r  )r  r   z@Transformations are currently only supported for continuous RVs.r-   )r   r$   r/   r0   r  r  )r4   r  r6   s      r7    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,' rq   )lbubr=   r:   ra  r  r  r~  r  r=   r:   )'rE   r   r   minimummaximumr   truncater!   	truncnormro  r   r   r   r   r   r   rm  r   r   r  r  r  r   r   r|  r   r   rl  r   r  rn  r   r   r   rk  r  r   r   rT  )	r4   r   r  r  r3  Y0r   r   r   s	            r7   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4rI   r:   r   r   r   c           	         t         j                  j                  |      } G d dt              }t	        |||dd      }|\  }}}}	}
}}}|j
                  }|j                  }t               }t        j                  ||      }t        ||      }||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        |j1                         |j1                                t        |j3                  |      |j3                  |      t        j4                  |      z
         t        |j7                  |      |j7                  |      |z         t        |j9                  |      |j9                  |             t        |j;                  |      |j;                  |             t        |j=                  |      |j=                  |             t        |j?                  |      |j?                  |             t        |j9                  ||      |j9                  ||             t        |j;                  ||      |j;                  ||             t        |j=                  ||      |j=                  ||             t        |j?                  ||      |j?                  ||             t        |jA                  |
      |jA                  |
      |z  |z          t        |jC                  |	      |jC                  |	      |z  |z          t        |jE                  |
      |jE                  |
      |z  |z          t        |jG                  |	      |jG                  |	      |z  |z          tI        dd      D ]  }t        |jK                  |d      |jK                  |             t        |jK                  |d      |jK                  |d      ||z  z         t        |jK                  |d      |jK                  |d      t        j.                  |      |z  z          tI        dd      D ]d  }t        |jM                  |      |jM                  |      d       |dk\  s5t        |jM                  |d      |jM                  |d      d       f 	 d d d        |d
|z  z
  |z   }||d
z  z  |z  }t        jN                  |jP                        }|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        |j1                         |j1                         |z          t        |j3                  |      |j3                  |      |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          t        |jG                  |	      |jG                  |	      |z          tI        dd      D ]  }t        |jK                  |d      |jK                  |d             t        |jK                  |d      |jK                  |d             t        |jK                  |d      |jK                  |d              tI        dd      D ]`  }t        |jM                  |      |jM                  |             |dk\  s3t        |jM                  |d      |jM                  |d             b 	 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  )rF  __init__r   )r4   r  r  rJ  s      r7   r  zATestTransforms.test_loc_scale.<locals>.TransformedNormal.__init__?  s     !1CDCFCrI   )r   r   r   r  rK  rL  s   @r7   TransformedNormalr  >  s    D DrI   r  )rR   r   r   r   rR   )r   rL   )locscaler  r   r   r<   r  r   r  r  r  g:0yE>r  r=   Tr  ))rE   r   r   r   r   r  r  r   r   normr!   r|  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  r  r~  )r4   rP   r   r   r  r   r   r9   r   r   r   rc   r   r   r  r  dist0dist_refdist_ref_lmomentx0y0r)   r*   a0b0r   zs                              r7   test_loc_scalezTestTransforms.test_loc_scale8  s    ii##D)	D 9 	D ,tSlQPMPJaAt\>?hh

 ::#U3!S6#g#g||~1B28$28$[[(; #	/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 1a[ /Q1A1I1I!1LSWX6#DLLL$E$4$<$<QD$<$Q)-//=#	/N qu#E1H}u$HHT[[!||~1B26"26"[[(; 	H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
 1a[ HQq1AB6#DLLL$E$)MM!M$FHH3	H 	Ha#	/ #	/`	H 	Hs&   ;Tl72l7#Pm=0m7mm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  rq   r  )r  r  r  r  r~  r  r=      M [ r   )%rE   r   r   r!   r   r  r  lognormro  r   r   r   r   r   r   rm  r   r   r  r  r  r   r   r|  r   r   rl  r   r  rn  r   r   r   rk  r  r   r   )r4   r"  r   r  r   r  r3  r  r   r   r   s              r7   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GrI   r  )rR   r<   rE  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  rq   r  r   r  r^  r   r   r%  r   )rE   r   r   r  r  r   rf  rR  r   r   r   r   r   r   r   r   r|  r   r   r   r  r   r   r   r   r  r   )r4   r  r   r)   r  InvGammar  r  r3  r   r   r   r   s                r7   test_reciprocalzTestTransforms.test_reciprocal  sn    ii##N3JJv
 ggenc%je **5>>:E\HqM)  !8FQK&1+AIIIGI-FF1Ivvayrzz|(<=		RZZ\2
BIIK0		RZZ\2a"&&),a"&&),q	2771:.q	2771:.
BHHQK0RYYq\2RYYq\2		!bjjm4[[(; 	AAIIdORZZ-=>AJJt,bkk$.?@	A T*E18883E,FG		A 	As   9ANNc                    t         j                  j                  d      }|j                  d      }t        |      }t	        j
                  |      }t	        j                  |      }|j                  d|      }|j                  |      }t        |j                         t        j                  |j                                      t        |j                         |j                                t        |j                         |j                  d             t        |j                         |j                                t        |j                         |j!                                t        |j#                         t        j$                  |j!                                      t        |j'                         |j	                  d             t        |j)                         |j	                  d      d	z          t        |j+                         |j+                                t        |j-                  |      |j-                  |             t        |j                  |      |j                  |             t        |j/                  |      |j1                  |             t        |j3                  |      |j                  |             t        |j5                  |      |j7                  |             t        |j9                  |      |j9                  |             t        |j;                  |      |j;                  |             t        |j=                  |      |j?                  |             t        j@                  d
      5  t        |jC                  t        j                  |            |j                  |             t        |jE                  t        j                  |            |j7                  |             d d d        d}t        |jG                  |      t        j                  |jG                  |                   y # 1 sw Y   KxY w)Nr  rq   r  r  r  r  r~  r  r=   r   )r   r%  r   )$rE   r   r   r   r   loggammar   ro  r   r   r   r   r   rm  r   r   r  r  r  r   r   r|  r   r   rl  r   r  rn  r   r   r   rk  r   r  r   r   )	r4   r   r)   r  r  r3  r   r   r   s	            r7   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)NrR   r<   r(   zUniform(a=1.0, b=2.0)zlog(r   z1/(zexp(rE  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/   r0   r  )r4   r  X_strr6   s       r7   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(   )rE   r   r   r   r   r   r   r   )	r4   r   r)   r*   r  r  r9   r3  r  s	            r7   test_arithmetic_operatorsz(TestTransforms.test_arithmetic_operatorsA  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":;rI   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  rq   r  r  r  r  r~  r  r=   r:   r   )%rE   r   r   r   r  r!   foldnormro  r   r   r   r   r   r   rm  r   r   r  r  r  r   r   r|  r   r   rl  r   r  rn  r   r   r   rk  r  r   r   rT  )r4   r   r  r3  r  r   r   r   s           r7   test_abszTestTransforms.test_absS  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!!!rI   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  rR   )r   rf  weibull_minr  r   r   r   r   r   r   r   )r4   Weibullr  r3  s       r7   test_abs_finite_supportz&TestTransforms.test_abs_finite_supports  s     ))%*;*;<aLGQXXa[!((1+.QUU1XquuQx(QXXa[!((1+.QUU1XquuQx(QYYq\199Q<0QVVAYq	*rI   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<   rR   )dfr:   r  r  r  r(  r~  r  r=   r   )$rE   r   r   r!   r   chi2ro  r   r   r   r   r   r   r   r   r  r  r  r   r   r|  r   r   rl  r   rm  r  rn  r   r   r   rk  r  r   r   rT  )r4   r   r3  r  r   r   r   s          r7   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!!!rI   N)r   r   r   r  r  r/   r   r`  r   r   rP   r   r!  r   r'  xfail_on_32bitr*  r-  r2  r6  r9  r=  rA  ru   rI   r7   r   r     s8    5D [[2

!(;
(;(;a(HIgH J gH` [[1[[Y7#H 8 #HL [[2[[Wj1[[ QR&H S 2 &HP [[1H HB D<$"@+"rI   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   rR   r(   r   r=   )r  rr  r  r~  r  r  r  r  r$  r%  r   r   r   r   z0`r` and `n` must contain only positive integers.r-   rE  r0  )&rE   r   r   r#   rx   r   order_statisticr{   ro  r   r   r  r   r   r   r   r  r   r   r   rm  r|  r   r   r   r  r   r   r   rk  r   r  r   r   rn  r/   r0   r  )
r4   r   r  r  rF  r3  r  r   r   r6   s
             r7   test_order_statisticz'TestOrderStatistic.test_order_statistic  s   ii##$45a1JJaS1#'!!!qA.ZZ1q519%FF7F-FF1I 	q||~.

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

bffh/

bhhsm%@

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


""266!9bffQi8rI   N)	r   r   r   r/   r   r`  rH  rK  rQ  ru   rI   r7   rD  rD    s.    [[2(1 (1T29rI   rD  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/   r0   r  r   rG   r2   __str__r  s    r7   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rU  )r/   r0   r  r   validater  s    r7   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)rE  rR   r9   rX   r  g      @r  r  TF)r   r   rE   rx   rY  r   )	r4   r[  r\  r5   r  r9   arrrn  r  s	            r7   "test_RealParameter_uncommon_dtypesz3TestFullCoverage.test_RealParameter_uncommon_dtypes  sp     w'"3v6	JJSz2%..q2.FUES!	!!!UT5M*rI   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>.TestDistr9   )r  r  r+   rX   c                      y)Nr   ru   r4   r9   r  r  s       r7   _logpdf_formulaz^TestFullCoverage.test_ContinuousDistribution_set_invalid_nan.<locals>.TestDist._logpdf_formula  s    rI   N)r   r   r   r   r   r   re  ru   rI   r7   TestDistrb  	  s    &s=83TUIrI   rf  r  r  )r   rE   float32ro  rx   r   rn  )r4   rf  r  rn  r9   s        r7   +test_ContinuousDistribution_set_invalid_nanz<TestFullCoverage.test_ContinuousDistribution_set_invalid_nan  sV    
	- 	
 J

JJuE*xx{  E)))rI   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  rR   )r   rE   float64r  finfoint64iinfor  s    r7   test_fiinfozTestFullCoverage.test_fiinfo  sj    rzz"~&**bhhrzz.B.F.FFFFrxx{#''288BHH+=+A+AAAArI   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   )r4   msgs     r7   test_generate_domain_supportz-TestFullCoverage.test_generate_domain_support  sJ    &~63s:::&v.-444&{3.#555rI   c                    t        dd      }t        |      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   rR   r(   z-Uniform(a=np.float64(0.0), b=np.float64(1.0))r=   r<   zOnp.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#   r  rE   r  rg  r  )r4   r  s     r7   #test_ContinuousDistribution__repr__z4TestFullCoverage.test_ContinuousDistribution__repr__"  s    a1AwIIIIAaC!G}!
 	
 

 bhhqkQ'AwCCCCbhhq

3rwwq

7STAw9
 	
 
rI   N)r   r   r   rW  rZ  r/   r   r   rE   float16int16rj  r_  rh  rn  rq  rs  ru   rI   r7   rS  rS    sl    "* [[6 "

BJJ7 ""**578+8+* B6
rI   rS  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 ej"                  dej                        ez   ej                  dej$                        z   dez  dz   edz  dez  dz   dz  dez  dz   dz  dez  ddez  dz   z  ddez   z   ej(                  edd       ej*                  edd       ej,                  e	e
gddg       ee       ej0                  e       ej2                  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j6                  dd
      e	z  dz   d
e	z   ej6                  dd      z    ej6                  dd
      e	z  dz    ej*                  edd       ej*                  e ej"                  d        ej"                  d             ej(                  e	 ej8                  dd      d      edz  dd ej0                  e      z   z  dez  g
      d        Zy)	TestReprsr   rR   r(   r  r  rE  r  i  r   r%  r<   r  r=   r>   r   rJ  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)rg  )r  r  r   rG  r  )r   r!   )r#   r:   i  r^  )numpyr{  rg  scipy.statsr  r  r   rG  r  r   r!   scipy.stats._new_distributionsr#   ra   r  r   r   rn  )r4   r   r{  rg  r  r  r   rG  r  r   r!   r#   new_distry  rz  s                  r7   test_executablezTestReprs.test_executable;  sh    4 	 !HH/:T
#++BD+1///5Wg&}}---rI   c                 6    t        t        |            dk  sJ y )N   )lenr  )r4   r   s     r7   test_not_too_longzTestReprs.test_not_too_longa  s    $ 4:$$$rI   N)r   r   r   r#   UrE   rg  Vr!   r  r3  r  r  r/   r   r   r{  r  rj  r   rG  r  r   r  r  r   r  fullaranger  ru   rI   r7   rw  rw  4  s   !qA*"**S/ZRZZ_5A"AA!1A("((4.*A[[#s$$BGGARZZ(*XRXXarzz-JJaC!GqDqS1WqLqS1WqLqD!aLQK!E!!!qA.ENN1c3'EMM1a&3*5FEIIaLEIIa!eBHHc3Z "XRXXsCj%99%	
../.. [[BGGD#"S(!GgbggdC((BGGD#"S(ENN1b!$ENN1wrwwt}ngbggdm<!E!!!yryyD'9TBqD1yuyy|#$qD	
%%rI   rw  c                   b    e Zd Z ed eej                   ej                  f            Zd Zy)	MixedDistr9   r+   rX   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  r  rd  s       r7   _pdf_formulazMixedDist._pdf_formulax  s    rwwqw//0266$4q?P:P3QQ3255!112RVVD1S5#+PQAQ<Q5RRS 	TrI   N)	r   r   r   r   r   rE   r   r   r  ru   rI   r7   r  r  v  s(    s=RVVGRVVCT+UVITrI   r  c                   l    e Zd Zd Zej
                  j                  dddg      d        Zd Zd Z	d Z
y	)
TestMixturec                    d}t        j                  t        |      5  t        g        d d d        d}t        j                  t        |      5  t        d       d d d        d}t        j                  t        |      5  t        t	        ddg      t	               g       d d d        d	}t        j                  t        |      5  t        t	               gd
d
g       d d d        d}t        j                  t        |      5  t        t	               gdg       d d d        d}t        j                  t        |      5  t        t	               gdg       d d d        d}t        j                  t        |      5  t        t	               t	               gd
dg       d d d        d}t        j                  t        |      5  t        t	               t	               gddg       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   kxY w# 1 sw Y   :xY w# 1 sw Y   
xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nz7`components` must contain at least one random variable.r-   z3Each element of `components` must be an instance...rN  z5All elements of `components` must have scalar shapes.rR   r<   )r  z5`components` and `weights` must have the same length.r  rx  z)`weights` must have floating point dtype.z`weights` must sum to 1.0.r  z#All `weights` must be non-negative.r0  r  )r/   r0   r  r   r!   r  s     r7   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rl  ru   )r:   c           	      H   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}	t7        j8                  t:        |	      5  |j=                  d       d d d        d|j?                  |      }
|
j@                  k(  sJ tC        jD                  |
jG                         |j$                        jH                  dkD  sJ y # 1 sw Y   mxY w)Nl   $8-@      пr  r  r  r  r  r  rx  c                     dk(  rt        j                  |       sJ t        j                  j                  | |fi | y )Nru   )rE   rp  rm  r   )rj   rm   r  rl  s      r7   r   z/TestMixture.test_basic.<locals>.assert_allclose  s5    {{{3'''JJ&&sC:6:rI   r  r   r  r  r  z(L-moments are not currently available...r-   rR   )r:   r   r   r   g?)%rE   r   r   r   r!   r  r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r  r   r   r  r  r  r/   r0   r  r  r   rl  r   ks_1sampravelr  )r4   rl  r   r  r3  r9   r   r  r  r6   r   s    `         r7   
test_basiczTestMixture.test_basic  s   ii##$67VuC0&Cs2KL&(KJJu	;
 	7		QYY[1!&&(+
AHHJ/!&&(+

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

ajjl3

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

1qzz!}5
AGGAJ/6 	,Dq ,T : !T :%*,,	,
 =]].g> 	IIaL	 HHUH$ww%~~aggi/66===	 	s   PP!c                 :   d}t        j                  t         j                        } ||      }t        j                  || f      }t	        j
                  ddd      }t        |j                  |      t        j                  |      j                  |             y )Nr  r  r>   r[  )	r   rf  r  r   rE   r_   r   r   dgamma)r4   r)   r  r  r3  r9   s         r7   test_default_weightsz TestMixture.test_default_weights  sp    ''4AJMM1qb'"KKAs#a%,,"3"7"7":;rI   c                    t        dd      t        dd      g}d}t        ||      }t        j                  t              5  d|_        d d d        t        j                  t              5  d|_        d d d        |d	   |j
                  d
<   |j
                  d
   |d
   k(  sJ |d	   |j                  d
<   |j                  d
   |d
   k(  sJ y # 1 sw Y   xY w# 1 sw Y   hxY w)Nr  r  r  r  r  r  rx  r:   rR   r   )r!   r   r/   r0   r2  
componentsry  )r4   r  ry  r  s       r7   test_propertieszTestMixture.test_properties  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Rr:   r?   )rE   r   r   r   rf  cauchyr   rm  r   r   r  r  r   )r4   r   CauchyX0r  r   s         r7   test_inversezTestMixture.test_inverse  s     ii##$;<((6XMM2r(#JJBJ


""166!9bggaj9


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


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


""1::a="++a.ArI   N)r   r   r   r	  r/   r   r   r  r  r  r  ru   rI   r7   r  r  }  sB    ?B [[Wr5k2,> 3,>\<*$BrI   r  c                      t        j                  t         j                        }  | dd      }t        |j	                  d      d       y )Ng      ?   )r)   r  r  )r   rf  zipfianr   r   )Zipfianzdists     r7   !test_zipfian_distribution_wrapperr    s6     %%emm4Gdb!E2$rI   c                       e Zd Zd Zd Zd Zy)Test_logexpxmexpyc                 x    t        j                  d      }t        t        ||      t         j                          y Nr%  )rE   rx   r   r   r   r  s     r7   test_x_equals_yz!Test_logexpxmexpy.test_x_equals_y	  s&    JJrN]1a(266'2rI   c                     t        j                  d      t        j                  t               }}t        t	        ||      |       y r  )rE   rx   r   r   r   )r4   r9   r   s      r7   test_y_neg_infz Test_logexpxmexpy.test_y_neg_inf		  s/    zz"~rzz3$/1]1a(!,rI   c                 v    t        j                  t         j                        }t        t	        ||      |       y r  )rE   rx   rr  r   r   r  s     r7   test_nanzTest_logexpxmexpy.test_nan	  s%    JJrvv]1a(!,rI   N)r   r   r   r  r  r  ru   rI   r7   r  r   	  s    3
-
-rI   r  c                      t        t        j                  d      t        j                  d            } | j                  d      }t        j                  |      sJ y )Ng8L:ҿg{վ?)log_alog_br   r%  )r   rE   rj  r   rq  )luactuals     r7   test_gh_25180r  	  sG    	2::&:;::&89
;BWWNW+F;;vrI   )r   )[	itertoolsr   rb  r  r  r   r|  rE   r   r/   numpy.testingr   r   
hypothesisr   r   r	   r
   hypothesis.extra.numpyextrar[   scipyr   r   scipy.stats._fitr   scipy.stats._ksstatsr   r}  r   scipy.stats._distr_paramsr   r   r  r   r   r   r   r   r   r   r   r   r   r   r~  r   r   r   r    r!   r"   r#   r$   r&   r   continuous_familiesdiscrete_familiesra  r   r   r   r  r	  r
  r}  r   r   r   r   r   r   r  r   Sobolr  rk  r  r	  r  r  r6  r   rD  rS  rw  r  r  r  r  r  ru   rI   r7   <module>r     s2    	      7 E E % %   0 (  <6 6 6 6 O N ? ; ;v6 v6r"NL 
    !22}! }!~ 'F"4$l0$f$@PGfk\-H` F9-UWf$56'898*-bii&9&93::syy%QR9 S . : 7 .
9<%N$8E,P  } }@\0 \0~R" R"hE9 E9PI
 I
X?% ?%DT& TwB wBt%- -(rI   