o
    ?Hh
6                 
   @   sn  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  mZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' d dl(m)Z)m*Z*m+Z+ d dlm,Z,m-Z- G dd dZ.dDddZ/e)e,e-e*gZ0G dd dZ1dd Z2dd Z3dd Z4dd Z5dd Z6dd Z7d d! Z8ej9:d"e,fej9:d#e; d$gej9:d%e; d&gej9:d'd(gej9:d)ej<j=ej>ej?gd*d+ Z@d,d- ZAd.d/ ZBd0d1 ZCd2d3 ZDG d4d5 d5ZEG d6d7 d7ZFG d8d9 d9ZGG d:d; d;ZHG d<d= d=ZIG d>d? d?ZJG d@dA dAe#ZKG dBdC dCZLdS )E    N)deepcopy)inf)assert_allcloseassert_equal)
strategiesgivenreproduce_failuresettings)stats)_kolmogorov_smirnov)kolmogn)qmc)distcont)
_Domain_RealDomain
_Parameter_Parameterization_RealParameterContinuousDistributionShiftedScaledDistribution_fiinfo_generate_domain_supportMixture)StandardNormal_LogUniform_Gamma)NormalUniformc                   @   s*  e Zd ZejdZdd Zej	
dejddddej ejgdd	 Zej	jeejd
dde e e ddd Zej	
dej ejdddfdgdd Zej	jeeejddejddeeejeejddejddeeeje e ddd Zdd Z dS ) Test_RealDomainl   @x	 c                 C   sL   t dd}d}tjt|d |t W d    d S 1 sw   Y  d S )Nab	endpointsz0The endpoints of the distribution are defined...match)r   pytestraises	TypeErrorget_numerical_endpointsdict)selfdomainmessage r.   a/home/air/sanwanet/gpt-api/venv/lib/python3.10/site-packages/scipy/stats/tests/test_continuous.pytest_iv   s
   
"zTest_RealDomain.test_ivx
            sizec                 C   s@   t j t j}}t||fdd}t||||k ||k@  d S )N)FTr#   	inclusive)npr   pir   r   contains)r+   r1   r    r!   r,   r.   r.   r/   test_contains_simple#   s    z$Test_RealDomain.test_contains_simpler5   r   
num_shapesmin_side)shapesinclusive_ainclusive_bdatac              	   C   s$  |\}}|\}}}	t ddddd}
t ddddd}|tjt ||
d}|tjt ||d}|| }tt|| |dt||dt||| dg}td	||fd
}|	t
dt dt
dt d ||t ||d	}|rxdnd}|r~dnd}td| d| d}t|| d S )NFg     @   )	allow_nanallow_infinity	min_value	max_valuer4   g     @@)elementsr2   r   r9   r    r,   r!   z<=<z(a z	 x) & (x z b))r*   drawnpstarraysfloating_dtypesr;   concatenatelinspacer   define_parametersr   r=   evalr   )r+   rB   rC   rD   rE   input_shapesresult_shapeshape_ashape_bshape_x
a_elements
b_elementsr    r!   dr1   r,   resleft_comparisonright_comparisonrefr.   r.   r/   test_contains+   s<   
zTest_RealDomain.test_containscaseFTz(-\infty, \pi])r       TFz[a, 5)c                 C   s4   t |d d |dd d}t||d ksJ d S )Nr4   r6   r9   )r   str)r+   rc   r,   r.   r.   r/   test_strX   s   zTest_RealDomain.test_str)rG   L)whitelist_categories)r    r!   rC   rD   c           	      C   sr   t j||}t j||}|rdnd}|rdnd}t||f||fd}| | d| | }t||ks7J d S )N[(])r9   , )r   symbolsgetr   re   )	r+   r    r!   rC   rD   left_bracketright_bracketr,   ra   r.   r.   r/   	test_str2`   s   zTest_RealDomain.test_str2c                 C   s(   t dd}t dd}|j|jusJ d S )Nr   rF   r"   )r   rn   )r+   domain1domain2r.   r.   r/   test_symbols_gh22137x   s   

z$Test_RealDomain.test_symbols_gh22137N)!__name__
__module____qualname__r;   randomdefault_rngrngr0   r&   markparametrizeuniformr   r<   r>   slowr   rO   mutually_broadcastable_shapesr   booleansrE   rb   rf   one_ofdecimals
characterssampled_fromlistr   rn   rr   rv   r.   r.   r.   r/   r      sF    

(




r   c                 C   sR  |   }|dkr/|tjd|d d}| |}|tj||d\}}	| j||||d}
n	| j|d}
t }	|tj	|	|d}|
j
j||
j||dd	}t||	}|tj	||d}|
j
j||
j||dd	}t||}td
d}td|d}|j|||d}tjddd t|}W d    n1 sw   Y  |
|||||	||fS )Nr   rF   )rJ   r?   )r|   proportionsi_parameterizationr|   )rA   typical)parameter_valuesr   r|   regionrs   TTprL   )r   r|   ignoredivideinvalid)_num_parameterizationsrN   r   integers_num_parametersrO   r   _drawtuplebroadcastable_shapes	_variable_parametersr;   broadcast_shapesr   r   errstatelog)familyrE   r|   r   rA   n_parameterizationsin_parametersrB   rW   distx_shaper1   x_result_shapey_shapeyxy_result_shapep_domainp_varr   logpr.   r.   r/   draw_distribution_from_family   sF   




r   c                   @   s  e Zd Zejdeddejdee	e
 e
jddddd	 Zejd
ejdeejddddhdfdddhdfddhdfddhdfddhdfddhdfddhdfddhdfddhdfddhdfdh ddfdh ddfd h ddfd!h ddfd"d#d$hd%fd&d#d$hd'fgedde	e
 e
jdddd(d) Zd*d+ Zejd,dd!gd-d. Zejd,dd!gd/d0 Zd1d2 Zd3d4 Zd5d6 Zejd,dd gd7d8 ZdS )9TestDistributions<      )max_examplesr   r   rI   rE   seedc                 C   s   t j|}d}t||||}|\}}}	}
}}}}|tjdddd}t jddd) t| t	|| t
|d||| tjd|d	}t
|d||| W d    d S 1 sWw   Y  d S )
Nffffff?皙?r   r   r   r   )min_dimsrA   max_sider   r   r   samplerF   r]   r   )r;   rz   r{   r   rN   rO   array_shapesr   check_supportcheck_moment_funcscheck_sample_shape_NaNsr   Halton)r+   r   rE   r   r|   r   tmpr   r1   r   r   r   rW   r   r   sample_shapeqrngr.   r.   r/   test_support_moments_sample   s   
"z-TestDistributions.test_support_moments_sampler2   zfunc, methods, argentropylog/exp
quadratureN
logentropymedianicdfmodeoptimizationmeancachevarianceskewnesskurtosispdfr1   logpdflogcdf>   
complementr   r   cdflogccdfccdfilogccdfr   	inversionr   iccdfr   c                 C   s  |t kr|dkrtd tj|}d}t||||}	|	\}
}}}}}}}|||d}tjdddd# |d u rBt|
|d || n||v rPt|
||| || W d    n1 sZw   Y  |dkrnt	|

 d |
  tjddddY t|
ts|d	krd
h}t|
d|||| t|
d|||| n1|dkrdh}t|
d|||| t|
d|||| W d    d S W d    d S W d    d S W d    d S 1 sw   Y  d S )Nr   z'Mode is not unique; `method`s disagree.r   )r1   r   r   r   )r   r   overr   r4   r   r   FTr   addition)r   r&   skipr;   rz   r{   r   r   check_dist_funcr   standard_deviationr   
isinstancer   
check_cdf2check_ccdf2)r+   r   rE   r   funcmethodsargr|   r   r   r   r1   r   r   r   rW   r   r   argsr.   r.   r/   
test_funcs   sB   

"zTestDistributions.test_funcsc                 C   sN   zdd l m} W n
 ty   Y d S w tddd}| }|| ks%J d S )Nr                 ?r   )matplotlib.pyplotpyplotImportErrorr   plotgca)r+   pltXaxr.   r.   r/   	test_plot   s   zTestDistributions.test_plotmethod_namec           	      C   s   t  }d|_tddg}t||}t|d| }||dd}||dd}||dd}t|d	 |d	  |d
 |d
 ks?J t|d
 |d
 |jd d S )N-q=-C6?MbP?r   formulamethodcomplement_safer   rF   r   rtolr
   r   tolr;   asarraygetattrr   r   )	r+   r   r   r   r   ifuncr1   p1p2r.   r.   r/   test_complement_safe  s   
z&TestDistributions.test_complement_safec                 C   s   t  }d|_tddg}t||}t|d| }||dd}||dd}t|d |d  |d	 |d	 ks9J t||d	 |d	 |jd
 d S )Nr   r   r   r   r   r   r   rF   r   r   r   )r+   r   r   r   r   r  x1x2r.   r.   r/   test_icomplement_safe  s   
 z'TestDistributions.test_icomplement_safec                 C   s   t  }d|_g d}g d}|j||dd}|j||dd}|j||dd}t|| t|||jd tg d	}tg d
}|d||  }|j||dd}|j||dd}t|d t|||jd d S )Nr   )r2      )r
  r	  r  r2   r   r   subtraction_safesubtractionr   )#BǻO
㒻#B;O
;r  )r  r  r  r  r  r   )	r
   r   r   r   r   r   r;   r   r   )r+   r   r1   r   p0r  r  r.   r.   r/   test_subtraction_safe  s    

z'TestDistributions.test_subtraction_safec                 C   s   G dd dt j}|g dd}tjdd |jdd}|jd	d}W d    n1 s-w   Y  |jd
d}ddg}t||  sGJ |d |d ksQJ t|| ||  d S )Nc                          e Zd Z fddZ  ZS )z7TestDistributions.test_logentropy_safe.<locals>._Normalc                    s.   t t jdi |}d|d< t j|d< |S )Nr   r.   )r;   r   super_entropy_formular   )r+   paramsout	__class__r.   r/   r  8  s   
zHTestDistributions.test_logentropy_safe.<locals>._Normal._entropy_formula)rw   rx   ry   r  __classcell__r.   r.   r  r/   _Normal7      r  rF   r4   r5   sigmar   r   logexp_safer   logexpr   r   r  rF   )r
   r   r;   r   r   isinfallr   )r+   r  r   res1res2ra   i_flr.   r.   r/   test_logentropy_safe5  s   z&TestDistributions.test_logentropy_safec                 C   s   t jg dd}g d}g d}tjdd |j||dd}|j||d	d}W d    n1 s1w   Y  |j||d
d}ddg}t||  sMJ |d |d ksWJ t|| ||  d S )Nr  r   )rF   ,  )ir4   -  r   r"  r#  r   r$  r   r   r  rF   )r
   r   r;   r   r   r%  r&  r   )r+   r   r1   r   r'  r(  ra   r)  r.   r.   r/   test_logcdf2_safeJ  s   z#TestDistributions.test_logcdf2_safec                 C   s   t jdd}|dkrddgnddg}t||}tjdd ||d	d
}||dd
}W d    n1 s4w   Y  ||dd
}|d |d ksIJ |d |d ksSJ |d |d ks]J |d |d ksgJ d S )Nr4   r   r   r+  rF   r-  r   r"  r#  r   r$  r   r   )r
   r   r  r;   r   )r+   r   r   r1   r   r'  r(  ra   r.   r.   r/   test_logexp_safeZ  s   
z"TestDistributions.test_logexp_safe)rw   rx   ry   r&   r}   	fail_slowr	   r~   familiesr   r   rE   r   r   r   r   r  r  r  r*  r.  r/  r.   r.   r.   r/   r      sP    









!


r   c                 C   s  || }|dkr| j }dh}| d| dr"t|tjs"|d |D ]_}||||d}	tt| |	j	}
t
|	j	| tj
|	j| j |dkrPt|	sPJ tt|	|
 s\J t
|	|
  tj |||dd}|||dd}tt|	|r~J t
|| q$d S )	Nr   inverse_transform__formular   )r   r|   r.   *   )r   
_overridesr   r   	QMCEngineaddr;   broadcast_toget_valid_parametersshaper   testingdtype_dtypeisscalarr&  isfinitenananyequal)r   fnamer   rW   r|   
full_shapesample_methodr   r   r^   valid_parameterssample1sample2r.   r.   r/   r   i  s,   

r   c                 C   sl   |   \}}t| dd | t| dd | |j| jksJ |j| jks$J |j| jks,J |j| jks4J d S )Nsupport)rJ  check_nans_and_edgesr;  _shaper=  r>  )r   r    r!   r.   r.   r/   r     s   r   c           
      C   s  |d u rt  n|f}| }d|v r1tt t| ||ddi W d    n1 s,w   Y  t| || }t| ||| ddi}|dv rLddi}n|dv rUddi}n|dv r]d	d
i}| d| drk|d t	j
|j| |t  krt	|sJ |D ]J}t| ||d|i}	d|v rt	j
jt	|	t	|fi | nt	j
j|	|fi | t	j
|	j|j t	j
|	j| |t  krt	|	sJ qd S )Nr   r   atolV瞯<>   r   logmeanr   logskewness>   r   ư>>   r   r   gH׊>r3  r4  r   r   )r   copyr&   r'   NotImplementedErrorr  rK  r6  r8  r;   r<  r   r;  r?  r   expr=  )
r   rD  r   rW   r   r   ra   tol_overrider   r^   r.   r.   r/   r     sB   




r   c           	      C   s  |  }|r/| dr|d | ds| dr|d | ds)| dr.|d n(| d	r9|d | dsC| drH|d | dsR| drW|d | || | }tj|j| |t krut	|suJ |D ]K}|rt
| j|||d
n| j|||d
}tjj||dd |rtj|j|d j n	tj|j|j tj|j| |t krt	|sJ qwd S )N_logcdf2_formular   _logcdf_formula_logccdf_formular  _cdf_formula_ccdf_formular   _cdf2_formular   +=rM                  )rR  r6  r8  r   r;   r<  r   r;  r   r?  rT  r   r   r=  	r   r   r1   r   rW   r   ra   r   r^   r.   r.   r/   r     sH   











r   c           	      C   s   |  }| d|rdnd dr|d | || | }tj|j| |t	 kr4t
|s4J |D ]=}|rEt| j|||dn| j|||d}tjj||dd tj|j|j tj|j| |t	 krst
|ssJ q6d S )	Nr3  r    ccdf2_formular   r   r\  r]  )rR  r6  r8  r   r   r;   r<  r   r;  r   r?  rT  r   r   r=  r_  r.   r.   r/   r     s$   


r   c                 C   s  t | }|dv rtddd}n|dv rtt dfdd}n| jj}t| ||}tj|g|R  ^}}|\}}}	}
||@ }t||  tj	 t||
 tj	 | 
 \}}t||j}t||j}|	dk|@ }|	dk|@ }|dk|@ }|dk|@ }|d	v rt|| tj  t|| tj  t||| @  tj  t||| @  tj  n|d
v rt|| d t|| d t||| @  d t||| @  d n|dv rt|| t  t|| d t|| t  t|| d n|dv rt|| d t|| d t|| d t|| d n|dv r9t|| d t|| t  t|| d t|| t  n|dv r[t|| d t|| d t|| d t|| d ng|dv rt||	dk tj	 t||	dk tj	 t||dk ||dk  t||dk ||dk  n3|dv rt||	dk tj	 t||	dk tj	 t||dk ||dk  t||dk ||dk  |dvrt|||dk@   sJ d S d S )N>   r   r   rs   r   r9   >   ilogcdfr   r   r  rF   >   r   >   r   >   r   >   r   >   r   >   r   >   r   rb  >   r   r   >   r   rO  rJ  r   rP  )r:  r   r   r   r,   classify_argr;   broadcast_arraysr   rA  rJ  r9  r;  r@  r&  )r   rD  r   r^   rG  
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_plusr.   r.   r/   rK    s   





 rK  c              	      s  d d fdd	}fdd}   tdD ]O}||dd	d
d j|ddd}tdd | |j|ks8J ||dd	|dd ||dd|||dd ||dd||dkd jtjkrg||dd|dd q   dd dd tddD ](}j|ddd}||dd|||dp||dd |d ||dd| q}   tdD ]x}||dd	d
d j|ddd}|j|ksJ ||dd	|dd ||dd|||dd ||dd||dkd jtjkr||dd|dd jtjkr|dks||dd|||dp|dkd ||ds&|d ||dd| q   dd dd dd tddD ]$}j|ddd}||dd|||dd |d ||dd| qBjdddd}   tdD ]?}||dd	d
d j|ddd||d   }|j|ksJ ||dd|||dd ||dd||dkd ||dd| qwt	t
rd S d S )Ng&.>Tc                    s~   |rj | ||d}t|| d|   d |j|jksJ d S tt j | ||d W d    d S 1 s8w   Y  d S )Nr   r2   r]  )momentr   r;  r&   r'   rS  )orderkindr   ra   successr^   rM  r   r.   r/   check`  s   "z!check_moment_funcs.<locals>.checkc                    sD   d| d}  |}|sdS t |}t|dttd}| |v S )N_moment_r4  Forders   )r6  r  setrange)rq  rr  formula_name	overridesr   rw  )r   r.   r/   has_formulai  s   

z'check_moment_funcs.<locals>.has_formularx  rawr   F)rs  r   r   rp  r   generalr   quadrature_icdfcentralrF   r4   	transformstandardizedrd   r5   	normalize)NNT)reset_cacherz  rp  rK  r;  r  r
   r   r   r   r   )r   rW   ru  r}  r   ra   varr.   rt  r/   r   X  s   	




r   r   r   )r4   r5   
dist_shape)r6   rF   rD  r   rng_typec                 C   s   t jd}|  }|r|dkrtd | ||}d}|f| }	|	| }
|dkr-|j}|t jjkr9|d|d}||	|d}|j	|
ksFJ t
||dd	}t|j	d |d
d}d}|j}t ||k }||| k skJ d S )Nl   MLy r   z3Distribution can't have a shape without parameters.i   r   rF   r   r   )axisF)r   g{Gz?)r;   rz   r{   r   r&   r   r   r   	Generatorr;  r   r   r8   sum)r   r  r   rD  r  r|   num_parametersr   nsample_sizesample_array_shaperF  r1   	statisticpvaluep_thresholdnum_pvaluesnum_small_pvaluesr.   r.   r/   test_sample_against_cdf  s(   

r  c                 C   s   | j }i }| jD ]}||j qtj| jtd}| D ]A\}}||vr&q|| }|j	j
|d\}}	|j	j\}
}|
r?||kn||k }||rJ||	kn||	k M }t||j	j||d ||M }qt| | j |S )Nr=  r   )r   _parameterizationsupdate
parametersr;   onesrL  boolitemsr,   r)   r:   r   r=   _invalid)r   r   r  parameterizationrk  namevalue	parameterr    r!   
a_included
b_includedvalidr.   r.   r/   r:    s*   



r:  c                 C   s.  |d u r*t j| jtd}t j| jtd}t j| jtd}t j| jtd}||||fS |j| jd\}}t |||\}}}|j\}	}
|	rH||kn||k }||
rS||kn||k M }t j|j	t
d}d|||k< d|||k< t j|j	t
d}d||	r|||k n||k< d||
r||k n||k< t |}||||fS )Nr  r  r  rF   )r;   r  rL  r  zerosr)   r   rd  r:   r;  intisnan)r   r   re  
valid_argsendpoint_argsoutside_argsnan_argsr    r!   r  r  insideonoutsiderA  r.   r.   r/   rc     s*   


rc  c                  C   s  G dd dt } d}tjt|d | dd W d    n1 s!w   Y  d}tjt|d | tg d W d    n1 sBw   Y  tjt|d | g d	d W d    n1 s`w   Y  tjt|d | tjd W d    n1 s}w   Y  tjt|d | d
d W d    n1 sw   Y  d}tjt|d |  d
 W d    n1 sw   Y  tjt|d |  tj W d    n1 sw   Y  d}tjt|d |  jddd W d    n1 sw   Y  G dd dt }d}tjt|d |dd W d    n	1 sw   Y  d}tjt|d |  W d    n	1 s;w   Y  d}tjt|d |ddgg d	d W d    n	1 s_w   Y  d}tjt|d |g d	g d	d}|	ddg W d    n	1 sw   Y  d}tjt
|d |dt gddgd W d    n	1 sw   Y  d}tjt|d |g d	g d	d}|jdd W d    d S 1 sw   Y  d S )Nc                   @   s   e Zd Zede dZdS )z#test_input_validation.<locals>.Testr1   rL   N)rw   rx   ry   r   r   r   r.   r.   r.   r/   Test=  s    r  z`The `Test` distribution family does not accept parameters, but parameters `{'a'}` were provided.r$   rF   r    zAAttribute `tol` of `Test` must be a positive float, if specified.r   r  r  zEArgument `order` of `Test.moment` must be a finite, positive integer.z2Argument `kind` of `Test.moment` must be one of...r4   coconutrr  c                   @   sB   e Zd Zede dZede dZeeegZede dZ	dS )z$test_input_validation.<locals>.Test2crL   r]   r1   N)
rw   rx   ry   r   r   _p1_p2r   r  r   r.   r.   r.   r/   Test2Z  s
    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  r]   zmThe argument provided to `Test2.pdf` cannot be be broadcast to the same shape as the distribution parameters.z$Parameter `c` must be of real dtype.z<Parameter `convention` of `Test2.kurtosis` must be one of...
convention)r   r&   r'   
ValueErrorr;   r   rA  rp  r   r   r(   objectr   )r  r-   r  r   r.   r.   r/   test_input_validation<  sp   $r  c                  C   s   t ddgdd} tdi | }t|}tt|}| | | }}}t||ks2J t||ks;J |jdd|jdd|jdd}}}t||ksXJ t||ksaJ d S )Nr  r4   r2   r   r5  r   r.   )	r*   r   r   pickleloadsdumpsr   r;   r&  )kwargsdist1dist2dist3r'  r(  res3r.   r.   r/   test_rng_deepcopy_pickle  s   (r  c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestAttributesc                 C   s  t dd}d}tjt|d |jdd W d    n1 sw   Y  | }tjt|d |jdd W d    n1 s@w   Y  d |_tjt|d |jdd W d    n1 s`w   Y  | }|jdd}t|| |jdd}|jdd}t|| t||krJ d|_|jdd}|jdd}t|| t||krJ |	  tjt|d |jdd W d    n1 sw   Y  d	}tjt
|d d
|_W d    d S 1 sw   Y  d S )Nno_cache)cache_policyzD`StandardNormal` does not provide an accurate implementation of the r$   r   r   r   r   z/Attribute `cache_policy` of `StandardNormal`...r   )r   r&   r'   rS  r   r  r   r;   r&  r  r  )r+   r   r-   r   cached_meanquadrature_meanr.   r.   r/   test_cache_policy  sB   



"z TestAttributes.test_cache_policyc           
      C   s  d}t  }d}tjt|d d|_W d    n1 sw   Y  tjt|d d|_W d    n1 s7w   Y  tjt|d tj|_W d    n1 sRw   Y  t jdd}t jdd}||}|j|d	d
}|j|d	d
}t	|||jd t	|||jd t
|| t
|| ksJ d}	|j|j|_|_||	}|j|	dd
}|j|	dd
}t	|||jd t	|||jd t
|| t
|| ksJ d S )N      @z+Attribute `tol` of `StandardNormal` must...r$   g      )r   r   r  r   r   r   r   gGz?r   )r
   r   r&   r'   r  r   r;   rA  r   r   absr   )
r+   r1   r   r-   X1X2ra   r'  r(  r   r.   r.   r/   test_tol  s8   


 zTestAttributes.test_tolc                 C   s   t ddd}|ddksJ d|_|tddksJ tdtd}}t ||dd	}|tdd
ks<J G dd dt }|||dd	}| dksSJ |jdd
ddks^J d}tjt	|d d|_W d    d S 1 svw   Y  d S )Nr   rF   r   r4   skip_all       @r   r   )r    r!   validation_policyr  c                   @   s   e Zd Zdd Zdd ZdS )z0TestAttributes.test_iv_policy.<locals>.MyUniformc                 _      dS N	incorrectr.   r+   r   r  r.   r.   r/   r       zATestAttributes.test_iv_policy.<locals>.MyUniform._entropy_formulac                 [   r  r  r.   )r+   rq  r  r.   r.   r/   _moment_raw_formula  r  zDTestAttributes.test_iv_policy.<locals>.MyUniform._moment_raw_formulaN)rw   rx   ry   r  r  r.   r.   r.   r/   	MyUniform  s    r  r  r~  )rr  rq  z/Attribute `validation_policy` of `MyUniform`...r$   r   )
r   r   r  r;   r   r   rp  r&   r'   r  )r+   r   r    r!   r  r-   r.   r.   r/   test_iv_policy  s   "zTestAttributes.test_iv_policyc                 C   s   t jddd}t jdgdd}|jdksJ |jdksJ |jd dks&J |jd dks/J tt d|_W d    n1 sBw   Y  d|jd< |jd dksUJ d S )NrF   r4   mur!  r5   r   r2   )r
   r   r  r!  r&   r'   AttributeError)r+   r   Yr.   r.   r/   test_shapes  s   
zTestAttributes.test_shapesN)rw   rx   ry   r  r  r  r  r.   r.   r.   r/   r    s
    (r  c                   @   s6   e Zd Zejdeedd Zdd Z	dd Z
dS )	TestMakeDistributionzi, distdatac              	   C   s  |d }h d}t tjdds||v rtd |dv r d S ddd}d	d
h}ddh}h d}h d}	h ddhdhd}
ddh}tt|}|jrXt	t
|jd|d ni }tjd}t|}|d)i |}|d)i |}|jd|d}||}||d}d}tjddd. |d\}}}}t| |  ||vrt| | |d t| | |d t| |||d t| |||d ||vrt| |||d ||vrt|jdd |||d t|||||d t|||||d t|||||d t|||||d ||	vr4t|||||d t| ||!||d t|"||#||d t|$||%||d t&d!D ]}||
|i vrzt|j'|d"d#|'|||d q_t&d$d%D ]}||vrt|j'|d&d#|d|d  ||d qd'}t|jd|d|j(dtj|d(|d W d    d S 1 sw   Y  d S )*Nr   >   argusksonekstwokappa4exponpowgenexpongompertz	exponweib	johnsonsb	kstwobign	powernormhalfgennormpowerlognormrecipinvgaussvonmises_linestudentized_rangeSCIPY_XSLOW0zSkipping as XSLOW>   vonmiseslevy_stablegh㈵>)r  r  r  pearson3r  r  >   chir  r  r  invgammar  >   triangarcsine	trapezoid
skewcauchy>   levyalphalevy_l
foldcauchy
halfcauchyparetor  r3   rm   rF   l   s4XF r2   r;  r|   gHz>r   r   r   mvskr   )r   rM  excessr  rd   r~  r  r5   r6   r  l   1XS+- )r8   random_stater.   ))r  osenvironro   r&   r   r  r
   rB   r*   zipsplitr;   rz   r{   make_distributionr   r   r   r   rJ  r   r   r   r   r   r   r   r   r   r   logsfr   sfr   ppfr   isfrz  rp  rvs)r+   r   distdatadistnamer   custom_tolerancesskip_entropyskip_skewnessskip_kurtosisskip_logccdfskip_rawskip_standardizedr   r  r|   CustomDistributionr   r  r1   r   r   rM  mvskrq  r   r.   r.   r/   test_make_distribution
  s   


$



$z+TestMakeDistribution.test_make_distributionc                 C   s   d}t jt|d ttj W d    n1 sw   Y  d}t jt|d ttj W d    n1 s9w   Y  d}t jt|d tt  W d    d S 1 sYw   Y  d S )Nz`levy_stable` is not supported.r$   z`vonmises` is not supported.z4The argument must be an instance of `rv_continuous`.)	r&   r'   rS  r
   r  r  r  r  r  r+   r-   r.   r.   r/   r  T  s   "z*TestMakeDistribution.test_input_validationc                 C   s   ddl m} | D ]	}tt|sJ q
ttj}t|dddks%J tj	dkr5t
|dddks5J d|jv s<J ttj}t|dd	d
ksMJ tj	dkr]t
|dd	dks]J d|jv sdJ d S )Nr   )_distribution_namesr4   r  zGamma(a=2.0)2zGamma(a=np.float64(2.0))Gamma)betazHalfGeneralizedNormal(beta=2.0)z+HalfGeneralizedNormal(beta=np.float64(2.0))HalfGeneralizedNormal)(scipy.stats._distribution_infrastructurer"  keyshasattrr
   r  gammare   r;   __version__repr__doc__r  )r+   r"  r   r.   r.   r/   test_repr_str_docsa  s   

z'TestMakeDistribution.test_repr_str_docsN)rw   rx   ry   r&   r}   r~   	enumerater   r   r  r.  r.   r.   r.   r/   r  	  s
    
Ir  c                   @   s   e Zd Zdd Zejdee	 ej
ddddd Zejd	ejd
ddgdd Zejdejdg dejddd Zejd	dd Zdd Zdd Zdd Zdd Zdd Zd S )!TestTransformsc           	      C   s>  t jd}|d}|d}t ||t ||}}tjt ||d}t||}|j	d|d}|
|}t| t | d  t| |  t| |d t| |  t| |  t| t |  t| |d t| |d	d
  t| |  t|||| t|
||
| t|||| t|||| t|||| t|||| t| || | t|!||"| t|#t ||| t|$t ||| |%d}t &||k||k @ sJ d S )N   b2,' r5   rF   )lbubr5   r2   r  r^        ?r  r  r5   r2   )'r;   rz   r{   minimummaximumr
   truncater   	truncnormr  r   r   r   r   r   r   r  r   r   r  r   sqrtr   r   rJ  r   r   r  r   r   r  r   r   r   r  rb  r   r   r&  )	r+   r|   r3  r4  r  Y0r   r   r   r.   r.   r/   test_truncatev  s:   



 zTestTransforms.test_truncater2   r   r   r   c                 C   sR  t j|}G dd dt}t|||ddd}|\}}}}	}
}}}|j}|j}t }tj	||d}|| | }|| | }|
 \}}|
 \}}t|||  t|||  t jddd` tt | |  t| |  t| | |  t| | |  t| | |  t| | |d	   t| | d
  t| | t |  t| |  t||||t |  t|||||  t|||| t|||| t|||| t|||| t|||||| t|||||| t|||||| t|||||| t||
||
| |  t| |	| |	| |  t|!|
|!|
| |  t|"|	|"|	| |  t#ddD ]4}t|$|d|$| t|$|d|$|d||   t|$|d|$|dt ||   qW d    n	1 sw   Y  |d	|  | }||d	  | }t %|j&}|
 \}}|
 \}}t|||  t|||  t jddd t| | |  t| | |  t| | |  t| | |  t| | |  t| | |  t| | |  t| | |  t| | |  t|||||  t|||||  t|||||  t|||||  t|||||  t|||||  t||
||
|  t| |	| |	|  t|!|
|!|
|  t|"|	|"|	|  t#ddD ]*}t|$|d|$|d t|$|d|$|d t|$|d|$|d qW d    d S 1 s"w   Y  d S )Nc                       r  )z8TestTransforms.test_loc_scale.<locals>.TransformedNormalc                    s    t  jt g|R i | d S )N)r  __init__r   r  r  r.   r/   r?    s    zATestTransforms.test_loc_scale.<locals>.TransformedNormal.__init__)rw   rx   ry   r?  r  r.   r.   r  r/   TransformedNormal  r  r@  )rF   r   r   r   rF   )r   rA   )locscaler   r   r4   r7  rd   r~  r  r  )'r;   rz   r{   r   r   rA  rB  r   r
   normrJ  r   r   rT  r   r   r   r   r   r   r   r   signr   r   r   r   r   r   r   r   rb  r   r   r   rz  rp  r  rL  )r+   rE   r   r|   r@  r   r   r1   r   r   r   rW   r   r   rA  rB  dist0dist_refx0y0r    r!   a0b0r   zr.   r.   r/   test_loc_scale  s   
 !
$zTestTransforms.test_loc_scalerd   exp_powrT  powc                 C   s@  t jd}|d}|d}t | | }|dkr!t|}nt j| }tj|t |d}|jd|d}|	|}	t
| t |  t
| |  t
| |d t
| |  t
| |  t
| t |  t
| |d t
| |d	d
  t
| |  t
|||| t
|	||	| t
|||| t
||	||	 t
||	||	 t
|||| t
|||| t
| ||!| t
|"t |	||	 t
|#t |	||	 d}
t
|j$|
dt |j$|
d d S )Nr1  r2  rT  )rB  r5  r6  r7  r  r  r5      M [ r   )%r;   rz   r{   r   r
   rT  elognormr  r   r   r   r   r   r   r  r   r   r  r   r<  r   r   rJ  r   r   r  r   r   r  r   r   r   r  rb  r   r   )r+   rM  r|   r  r!  r   r  r=  r   r   r   r.   r.   r/   test_exp_pow  s>   



$zTestTransforms.test_exp_powrB  )rF   r4   r  z/`scale=-1` fails on 32-bit; needs investigationc                 C   s  t jd}|d}t |t|}}ttj}|| ||d }|dkr-t|dnt|d }|| }|j	d|d}	|
|	}
t |
}t| t |  t| |  t| |  t| |  t||	||	 t|
|	|
|	 t||	||	 t||
||
 t||
||
 t||	||	 t||	||	 t||	||	 t jddd t|||| t|||| W d    n1 sw   Y  d	}t|j	|d
||j	|d
  d S )Nr1  r2  r  r   r5  r  r   r   rO  r   )r;   rz   r{   rD  r  r
   r  r  r   r   r   r   r   r   r   r   rJ  r   r   r   r   r   r   r   r   rb  r   )r+   rB  r|   r    rD  InvGammar=  r   r  r   r   r   r   r.   r.   r/   test_reciprocal&  s8   


"zTestTransforms.test_reciprocalc           	      C   sB  t jd}|d}t|d}t|}t|}|jd|d}||}t	|
 t |  t	| |  t	| |d t	| |  t	| |  t	| t |  t	| |d t	| |dd	  t	| |  t	|||| t	|||| t	|||| t	|||| t	|||| t	|||| t	|||| t	|||| t j d
d$ t	|!t ||| t	|"t ||| W d    n	1 sw   Y  d}t	|j#|dt |j#|d d S )Nr1  r2  r  r5  r6  r7  r  r  r5   r   )r   rO  r   )$r;   rz   r{   r   r
   loggammar   r  r   r   r   r   r   r  r   r   r  r   r<  r   r   rJ  r   r   r  r   r   r  r   r   r   r  r   rb  r   r   )	r+   r|   r    r   r=  r  r   r   r   r.   r.   r/   test_logQ  s<   




$zTestTransforms.test_logc                 C   sF  t ddd}d}tt|d| dksJ td| d| dks%J tt|d| dks4J t d	dd}d
}tjt|d d|  W d    n1 sRw   Y  d}tjt|d t| W d    n1 spw   Y  d}tjt|d d|  W d    n1 sw   Y  tjt|d d|  W d    n1 sw   Y  tjt|d ddg|  W d    n1 sw   Y  d}tjt|d |d  W d    n1 sw   Y  tjt|d |d  W d    n1 sw   Y  tjt|d |ddg  W d    d S 1 sw   Y  d S )NrF   r4   r   zUniform(a=1.0, b=2.0)zlog(rl   z1/(zexp(r  z=Division by a random variable is only implemented when the...r$   zBThe logarithm of a random variable is only implemented when the...z@Raising an argument to the power of a random variable is only...r7        ?z=Raising a random variable to the power of an argument is onlyr   )r   re   r
   r   rT  r&   r'   rS  )r+   r   X_strr-   r.   r.   r/   test_monotonic_transformss  sD   




$z(TestTransforms.test_monotonic_transformsc           	      C   s   t jd}d\}}}}|ddd}t||d}|| | }t||||| |  |||  }t||||| |  || | }t||||| |  |t||d|  }t|||| | |  d S )Nl   lO[5 )g7A`?gq=
ףp?g=
ףp=?g(\?r5   d   r   )r;   rz   r{   r   r   r   r   r   )	r+   r|   r    r!   rA  rB  r1   r  r   r.   r.   r/   test_arithmetic_operators  s   $z(TestTransforms.test_arithmetic_operatorsc                 C   s  t jd}|d}tt | }t|}|jd|d}||}t	|
 t | d  t	| |  t	| |d t	| |  t	| |  t	| t |  t	| |d t	| |dd	  t	| |  t	|||| t	|||| t	|||| t	|||| t	|||| t	|||| t	|||| t	||| | t	|!t ||| t	|"t ||| |#d
}t $|dksJ d S )Nr1  r2  r5  r6  r^  r7  r  r  r5   r2   r   )%r;   rz   r{   r
   r  r   foldnormr  r   r   r   r   r   r   r  r   r   r  r   r<  r   r   rJ  r   r   r  r   r   r  r   r   r   r  rb  r   r   r&  )r+   r|   rA  r  r=  r   r   r   r.   r.   r/   test_abs  s6   



zTestTransforms.test_absc                 C   s   t t j}|dd}t| }t|d|d t|d|d t|d|d t|d|d t|	d|	d t|
d|
d d S )Nr4   )r  rF   )r
   r  weibull_minr  r   r   r   r   r   r   r   )r+   Weibullr   r  r.   r.   r/   test_abs_finite_support  s   

z&TestTransforms.test_abs_finite_supportc                 C   s  t jd}t d }tjdd}|jd|d}||}t|	 t 
| d dd	 t| | dd	 t| |  t| |  t| |  t| t |  t| |d
 t| |dd  t| |  t|||| t|||| t|||| t|||| t|||| t|||| t|||| t|||| t| t 
||| t|!t 
||| |"d}t #|dksJ d S )Nr1  r4   rF   )dfr2   r6  r^  rQ  r   r  r  r5   r   )$r;   rz   r{   r   r
   chi2r  r   r   r   r   r   r   r   r   r  r   r<  r   r   rJ  r   r   r  r   r  r   r  r   r   r   r  rb  r   r   r&  )r+   r|   r  r=  r   r   r   r.   r.   r/   test_pow  s4   

 
zTestTransforms.test_powN)rw   rx   ry   r>  r&   r}   r0  r   r   rE   r   rL  r~   rR  xfail_on_32bitrT  rV  rZ  r]  r_  rb  re  r.   r.   r.   r/   r0  s  s&    
"
d
&

(
!" r0  c                   @   s0   e Zd Zejddd Zdd Zdd ZdS )	TestOrderStatisticr   c           
      C   sX  t jd}tddd}d}t dgdgdgg}tj|||d}t||d | }|jd|d	}|	|}t
t | |  t
| |  t
| |  t
| |  t
| |d
dd t
| |dd dd t
| |d t
| |  t
|||| t
|j	|dd|j	|dd t
|j|dd|j|dd t
|j|dd|j|dd t
|j|dd|j|dd t
|||| t
|||| t
|||| t jddd$ t
|t  ||| t
|!t  ||"| W d    n	1 s"w   Y  d}	t#j$t%|	d tj||dd W d    n	1 sDw   Y  t#j$t%|	d tj|d|d W d    n	1 sdw   Y  t#j$t%|	d tj||dd W d    n	1 sw   Y  t#j$t%|	d tj|d|d W d    d S 1 sw   Y  d S )Nl   Cvu= r   rF   r   rd   r5   )r  rr5  r6  r  rN  r]  r  r7  r   r   r   r   r   r   z0`r` and `n` must contain only positive integers.r$   r  rX  )&r;   rz   r{   r   r   r
   order_statisticr%  r  r   r   rT  r   r   r   r   r  r   r   r   r  rJ  r   r   r   r   r   r   r   r  r   rb  r   r   r  r&   r'   r  )
r+   r|   r   r  rh  r  r=  r   r   r-   r.   r.   r/   test_order_statistic  sR   
$z'TestOrderStatistic.test_order_statisticc                 C   sD   t t j}| }|d d }t j|ddd}t| |  d S )Nrd   r4   r5   rh  r  )r
   r  r   ri  r   rJ  )r+   r   r   r  Zr.   r.   r/   test_support_gh22037   s
   z'TestOrderStatistic.test_support_gh22037c                 C   s   t t j}t t j}ddgd}}ddgdgg}}dggdggg}| }t |||}	t j|	||d	}
|||d
}t j|||d	}tj|
	||	| d S )NrW  r  rF   r5   r6   rd   g333333ӿr   rk  r   )
r
   r  rC  r;  r:  ri  r;   r<  r   r   )r+   r   TruncatedNormalr    r!   rh  r  r1   r  Y1Z1r  Z2r.   r.   r/   test_composition_gh22037*  s   z+TestOrderStatistic.test_composition_gh22037N)	rw   rx   ry   r&   r}   r0  rj  rm  rr  r.   r.   r.   r/   rg    s
    

*
rg  c                   @   sf   e Zd Zdd Zdd Zejdej	ej	fej
ejfgdd Zdd	 Zd
d Zdd Zdd ZdS )TestFullCoveragec                 C   s   t t td d W d    n1 sw   Y  t t td d W d    n1 s1w   Y  t t td  W d    d S 1 sLw   Y  d S Nr   )r&   r'   rS  r   r=   r)   __str__r+   r.   r.   r/   test_Domain?  s   "zTestFullCoverage.test_Domainc                 C   s<   t t td d W d    d S 1 sw   Y  d S rt  )r&   r'   rS  r   validaterv  r.   r.   r/   test_ParameterG  s   "zTestFullCoverage.test_Parameter)dtype_in	dtype_outc           	      C   sb   t d}td|d}tjddg|d}|j|i d\}}}t|| ||ks(J t|dd	g d S )
N)r  rF   r1   rL   r7  g      @r  r  TF)r   r   r;   r   rx  r   )	r+   rz  r{  r,   r  r1   arrr=  r  r.   r.   r/   "test_RealParameter_uncommon_dtypesK  s   
z3TestFullCoverage.test_RealParameter_uncommon_dtypesc                 C   sJ   G dd dt }| }tj}||_tjdg|d}||j|ks#J d S )Nc                   @   s&   e Zd ZededddZdd ZdS )zNTestFullCoverage.test_ContinuousDistribution_set_invalid_nan.<locals>.TestDistr1   )r   r   r"   rL   c                 _   r  )Nr   r.   r+   r1   r   r  r.   r.   r/   _logpdf_formula_  r  z^TestFullCoverage.test_ContinuousDistribution_set_invalid_nan.<locals>.TestDist._logpdf_formulaN)rw   rx   ry   r   r   r   r  r.   r.   r.   r/   TestDist]  s    r  r7  r  )r   r;   float32r>  r   r   r=  )r+   r  r   r=  r1   r.   r.   r/   +test_ContinuousDistribution_set_invalid_nanX  s   z<TestFullCoverage.test_ContinuousDistribution_set_invalid_nanc                 C   sH   t tdjttjjksJ t tdjttjjks"J d S )Nr   rF   )r   r;   float64maxfinfoint64iinforv  r.   r.   r/   test_fiinfoh  s   "&zTestFullCoverage.test_fiinfoc                 C   s@   t t}d|v s
J t t}d|v sJ t t}d|v sJ d S )Nz"accepts no distribution parameterszaccepts one parameterizationzaccepts two parameterizations)r   r   r   r   )r+   msgr.   r.   r/   test_generate_domain_supportl  s   z-TestFullCoverage.test_generate_domain_supportc                 C   s   t ddd}tjdk rt|dksJ nt|dksJ tjdk r.t|d d d	ks-J nt|d d d
ks:J t tddd}t|dksKJ t tjdtjdtjdtjdd}t|dkseJ d S )Nr   rF   r   r#  zUniform(a=0.0, b=1.0)z-Uniform(a=np.float64(0.0), b=np.float64(1.0))r5   r4   z3.0*Uniform(a=0.0, b=1.0) + 2.0zOnp.float64(3.0)*Uniform(a=np.float64(0.0), b=np.float64(1.0)) + np.float64(2.0)r6   z'Uniform(a=array([0., 0., 0., 0.]), b=1)r  z[Uniform(a=array([0., 0., 0., 0.], dtype=float32), b=array([1., 1., 1., 1.], dtype=float32)))r   r;   r+  r,  r  r  r  )r+   r   r.   r.   r/   #test_ContinuousDistribution__repr__v  s   

$z4TestFullCoverage.test_ContinuousDistribution__repr__N)rw   rx   ry   rw  ry  r&   r}   r~   r;   float16int16r  r}  r  r  r  r  r.   r.   r.   r/   rs  <  s    




rs  c                   @   s4  e Zd ZedddZeededdZedddZ	edddZ
eedddZejd	eeedd
g ejeejjejdk dddejejdejde ejdejd ejjejdk dddde d ed de d d de d d de dde d  dde  ejedddeeddeje	e
gddgdeeeeede edd
ge ed
dg gdd Zejd	eedd
e	 d d
e	 edd edd
e	 d eeddeeed edeje	edddded ddee  de g
dd Z dS ) 	TestReprsr   rF   r   r   r   r  r  i  r   r  r#  z#numpy 1.x didn't have dtype in repr)reason)marksr4   r  r5   r6   rd   rk  g?g?g333333?r   weightsr  c                 C   s   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d	}|jddd	}t|| |j|ju sIJ d S )
Nr   )array)r  )r  rT  r   ri  r:  )r   r   )r   r2   i  r  )numpyr  r  scipy.statsr  rT  r   ri  r:  r   r   scipy.stats._new_distributionsr   rU   r,  r   r   r=  )r+   r   r  r  r  rT  r   ri  r:  r   r   r   new_distrH  rI  r.   r.   r/   test_executable  s   &
zTestReprs.test_executablec                 C   s   t t|dk s
J d S )N   )lenr,  )r+   r   r.   r.   r/   test_not_too_long  s   zTestReprs.test_not_too_longN)!rw   rx   ry   r   Ur;   r  Vr   r   r  r  rl  r&   r}   r~   r  paramskipifr+  r  r  r
   ri  r:  r   r  rT  r   r  fullaranger  r.   r.   r.   r/   r    sp    "


#r  c                   @   s0   e Zd Zedeej ejfddZdd ZdS )	MixedDistr1   r"   rL   c                 O   sd   ddt dt j   t d|d d d   ddt dt j   t d|d d d    S )	N皙?皙?r4         g      ?333333??r7  )r;   r<  r<   rT  r~  r.   r.   r/   _pdf_formula  s   00zMixedDist._pdf_formulaN)	rw   rx   ry   r   r   r;   r   r   r  r.   r.   r.   r/   r    s    r  c                   @   sF   e Zd Zdd Zejdddgdd Zdd	 Zd
d Z	dd Z
dS )TestMixturec                 C   s(  d}t jt|d tg  W d    n1 sw   Y  d}t jt|d td W d    n1 s5w   Y  d}t jt|d ttddgdt g W d    n1 sZw   Y  d	}t jt|d tt gd
d
gd W d    n1 s}w   Y  d}t jt|d tt gdgd W d    n1 sw   Y  d}t jt|d tt gdgd W d    n1 sw   Y  d}t jt|d tt t gd
dgd W d    n1 sw   Y  d}t jt|d tt t gddgd W d    d S 1 sw   Y  d S )Nz7`components` must contain at least one random variable.r$   z3Each element of `components` must be an instance...r  z5All elements of `components` must have scalar shapes.rF   r4   )r  z5`components` and `weights` must have the same length.r7  r  z)`weights` must have floating point dtype.z`weights` must sum to 1.0.r   z#All `weights` must be non-negative.rX  r  )r&   r'   r  r   r   r!  r.   r.   r/   r    s@   

$z!TestMixture.test_input_validationr;  r.   )r2   c           
         sD  t jd}ttdddtdddfdd}t }| } fd	d
}|| |  || |  || |  ||	 |	  ||
 |
  || |  || |  || |  || |  ||||| ||||| ||||| ||||| ||||| ||||| ||||| ||||| ||||| ||||| dD ]}tdD ]}||j||d|j||ddd qqd |j |d}	|	j ksJ t|	 |jj dks J d S )Nl   $8-@      пr  r  r7  r  r  r  r  c                    s0    dkrt | sJ t jj| |fi | d S )Nr.   )r;   r?  r<  r   )r^   ra   r  r;  r.   r/   r     s   z/TestMixture.test_basic.<locals>.assert_allclose)r~  r  r  rd   r  rN  r]  )r2   r   rd   r   g?)!r;   rz   r{   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rb  r   r   r   rz  rp  r   r;  r
   ks_1sampravelr  )
r+   r;  r|   r   r  r1   r   rr  rq  r   r.   r  r/   
test_basic  sJ   
"zTestMixture.test_basicc                 C   sZ   d}t t j}||d}t || f}tddd}t||t j|d| d S )Nr  r  r6   r,  )	r
   r  r*  r   r;   rS   r   r   dgamma)r+   r    r$  r   r  r1   r.   r.   r/   test_default_weights1  s   
"z TestMixture.test_default_weightsc                 C   s   t dddt dddg}d}t||d}tt d|_W d    n1 s'w   Y  tt d|_W d    n1 s?w   Y  |d	 |jd
< |jd
 |d
 ksVJ |d	 |jd
< |jd
 |d
 kshJ d S )Nr  r  r  r7  r  r  r  r2   rF   r   )r   r   r&   r'   r  
componentsr  )r+   r  r  r   r.   r.   r/   test_properties9  s   zTestMixture.test_propertiesc                 C   s   t jd}ttj}| }t||g}|jdd}t j|	||	| t j|
||
| t j|||| t j|||| d S )Nl    nppRr2   r7   )r;   rz   r{   r
   r  cauchyr   r<  r   r   r   rb  r   )r+   r|   CauchyX0r   r   r.   r.   r/   test_inverseK  s   zTestMixture.test_inverseN)rw   rx   ry   r  r&   r}   r~   r  r  r  r  r.   r.   r.   r/   r    s    !
+r  )r   )Mr  r  rR  r   r  r;   r   r&   numpy.testingr   r   
hypothesisr   r   r   r	   hypothesis.extra.numpyextrarO   scipyr
   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   r1  r   r   r   r   r   r   rK  r   r}   r~   r   rz   r  r   Sobolr  r:  rc  r  r  r  r  r0  rg  rs  r  r  r  r.   r.   r.   r/   <module>   sl    0
g& =
6,K~'Czj   HRN