o
    Ö­j
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.   ú^/var/www/html/CropPilot/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 sšw   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r–d
h}t|
d||||ƒ t|
d||||ƒ n1|dkr¿dh}t|
d||||ƒ t|
d||||ƒ W d   ƒ d S W d   ƒ d S W d   ƒ d S W d   ƒ d S 1 sÒw   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   é,  )iÔþÿÿr4   é-  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 r£t	j
jt	 |	¡t	 |¡fi |¤Ž nt	j
j|	|fi |¤Ž t	j
 |	j|j¡ t	j
 |	j|¡ |t ƒ krËt	 |	¡sËJ ‚q�d 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}|r†t 
| j|||d
�¡n| j|||d
�}tjj||dd� |r¥tj |j|d j¡ n	tj |j|j¡ tj |j|¡ |tƒ krÂt 	|¡sÂJ ‚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 r©t|| tj ƒ t|| tj ƒ t||| @  tj ƒ t||| @  tj ƒ �n|d
v rÐt|| dƒ t|| dƒ t||| @  dƒ t||| @  dƒ nò|dv rót|| 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 �r�t||	dk tj	ƒ t||	dk tj	ƒ t||dk ||dk ƒ t||dk ||dk ƒ n3|dv �rÂt||	dk tj	ƒ t||	dk tj	ƒ t||dk ||dk ƒ t||dk ||dk ƒ |dv�r×t |||dk@  ¡ ¡ �sÙJ ‚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sÇJ ‚||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�s—J ‚||dd|||dƒd� ||dd||dkd� ||dd|ƒ �qwt	ˆt
ƒ�r¿d 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{®Gáz„?)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 s™w   Y  d}tjt|d�� | ƒ  d
¡ W d   ƒ n1 s¸w   Y  tjt|d�� | ƒ  tj¡ W d   ƒ n1 sÖw   Y  d}tjt|d�� | ƒ jddd� W d   ƒ n1 s÷w   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 �sŠw   Y  d}tjt
|d�� |dtƒ gddgd� W d   ƒ n	1 �s¯w   Y  d}tjt|d�� |g d	¢g d	¢d�}|jdd� W d   ƒ d S 1 �sÚw   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¡rŽJ ‚d|_|jdd�}|jdd�}t||ƒ t ||k¡r«J ‚| 	¡  tjt|d�� |jdd� W d   ƒ n1 sÇw   Y  d	}tjt
|d�� d
|_W d   ƒ d S 1 säw   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s”J ‚d}	|j|j|_|_| |	¡}|j|	dd
�}|j|	dd
�}t	|||jd� t	|||jd� t
|| ƒt
|| ƒksÐJ ‚d S )Nç      @z+Attribute `tol` of `StandardNormal` must...r$   g      ð¿)r¶   r¶   r²  rõ   rÇ   rù   rü   g®Gáz®ï?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r±t| ¡ | ¡ |d� t| ¡ | ¡ |d� t| ¡ |||d� t| ¡ |||d� ||vrÞt| ¡ |||d� ||vrît|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�rœt|j'|d&d#�| d|d  ¡||d� �q�d'}t|jd|d�|j(dtj |¡d(�|d� W d   ƒ d S 1 �sÁw   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_stablegñhãˆµøä>)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|   gH¯¼šò×z>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  |¡|  ƒ �qƒW d   ƒ n	1 �sÃw   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¡ƒ �qëW 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 sïw   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 s�w   Y  tjt|d�� d|  W d   ƒ n1 s¨w   Y  tjt|d�� ddg|  W d   ƒ n1 sÅw   Y  d}tjt|d�� |d  W d   ƒ n1 sâw   Y  tjt|d�� |d  W d   ƒ n1 sýw   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È )g7‰A`åÐÒ?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 �s„w   Y  t#j$t%|	d�� tj|d|d� W d   ƒ d S 1 �s¥w   Y  d S )Nl   žC¦vu=Ö 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 sŸw   Y  d}t jt|d�� ttƒ gdgd� W d   ƒ n1 sÁw   Y  d}t jt|d�� ttƒ tƒ gd
dgd� W d   ƒ n1 sæw   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� qëqåd‰ |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