U
    ZÊ¹jŸ2  ã                   @   s(  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 d dlmZ d dlmZ d dlmZmZ d d	lmZmZ d d
lmZmZ d dlmZmZ d dlmZ d dlm Z  d dl!m"Z"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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZL d dlMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZW d dlXmYZYmZZZm[Z[m\Z\ d dl]m^Z^ d dlm_Z_ d dl`maZa d dlmbZb d dlcmdZd dd„ Zedd„ Zfdd„ Zgd d!„ Zhd"d#„ Zid$d%„ Zjd&d'„ Zkd(d)„ Zld*d+„ Zmd,d-„ Znd.d/„ Zod0d1„ Zpd2d3„ Zqd4d5„ Zrd6d7„ Zse[d8d9„ ƒZtd:d;„ Zud<d=„ Zvd>d?„ Zwd@dA„ ZxdBdC„ ZydDdE„ ZzdFdG„ Z{dHdI„ Z|dJdK„ Z}dLdM„ Z~dNdO„ ZdPdQ„ Z€dRdS„ Z�dTdU„ Z‚dVdW„ ZƒdXdY„ Z„dZd[„ Z…d\d]„ Z†d^d_„ Z‡d`da„ ZˆdbS )cé    )ÚSum)ÚBasic)ÚTuple)ÚLambda)ÚRationalÚnanÚooÚpi)ÚEq)ÚS)ÚSymbolÚsymbols)ÚFallingFactorialÚbinomial)ÚexpÚlog)ÚcosÚsin)Ú
DiracDelta)Ú	integrate)ÚAndÚOr)ÚMatrix)ÚInterval)ÚIndexed)"ÚDieÚNormalÚExponentialÚFiniteRVÚPÚEÚHÚvarianceÚdensityÚgivenÚindependentÚ	dependentÚwhereÚpspaceÚGaussianUnitaryEnsembleÚrandom_symbolsÚsampleÚ	GeometricÚfactorial_momentÚBinomialÚHypergeometricÚDiscreteUniformÚPoissonÚcharacteristic_functionÚmoment_generating_functionÚBernoulliProcessÚVarianceÚExpectationÚProbabilityÚ
CovarianceÚ
covarianceÚcmomentÚmomentÚmedian)
ÚIndependentProductPSpaceÚrs_swapÚDensityÚNamedArgsMixinÚRandomSymbolÚsample_iterÚPSpaceÚ	is_randomÚRandomIndexedSymbolÚRandomMatrixSymbol)ÚraisesÚskipÚXFAILÚwarns_deprecated_sympy)Úimport_module)Úcomp)ÚBernoulliDistribution)ÚDummy)Ú	Piecewisec               	   C   s°  t dƒt dƒ } }tdddƒ}t|d dkƒjtddƒks>t‚t|d dkƒ ¡ tddƒ |j¡ksht‚tt	| |k|dkƒƒ ¡ t	t
| jd	ƒt
|jd
ƒƒks t‚tt| dk ƒjƒdksºt‚dt| dk ƒjksÐt‚tdddƒtdddƒ } }tt	| d dk| dkƒƒjtddƒk�st‚t| t	| d dk| dkƒƒ}|jjjtddƒk�sLt‚|jj ¡ t	d| jk| jd dkt | jk | jtk ƒk�sŠt‚ttƒ� t| | d ƒ}W 5 Q R X d S )NÚXÚYÚZr   é   é   éÿÿÿÿé   é   é   é   )r   r   r'   Úsetr   ÚAssertionErrorZ
as_booleanZas_relationalÚsymbolr   r
   Úlenr$   r(   Údomainr   rG   Ú	TypeError)rP   rQ   rR   ÚXX© ra   úX/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/stats/tests/test_rv.pyÚ
test_where!   s&     *
 
ÿ
,
*ÿ

rc   c                  C   s’   t dddƒt dddƒ } }ttd|  d ƒƒ| hks8t‚ttd|  | ƒƒ| |hksXt‚ttd|  |j ƒƒ| hksxt‚ttdƒƒtƒ ksŽt‚d S )NrP   r   rS   rQ   rT   )r   rZ   r*   r[   r\   ©rP   rQ   ra   ra   rb   Útest_random_symbols8   s
      re   c                  C   sè   ddl m}  tdddƒ}tddddgƒ}tddƒ}td	ƒ}t|t|d  d ƒƒ}t|td| |  ƒd
 td| |  ƒd
  t||  ƒd
  ƒ}t|tdt||  ƒ d ƒƒ}t|ƒ 	|¡sÀt
‚t|ƒ 	|¡sÒt
‚t|ƒ 	|¡sät
‚d S )Nr   )ÚIrP   rS   rQ   rT   é   rR   Ú_trY   )Úsympy.core.numbersrf   r   r0   r1   r   r   r   r2   Údummy_eqr[   )rf   rP   rQ   rR   Útr   ÚQÚRra   ra   rb   Útest_characteristic_functionA   s    
>rn   c                  C   sÊ   t dddƒ} tddddgƒ}tddƒ}tdƒ}t|t|d d ƒƒ}t|td| ƒd	 td| ƒd	  t|ƒd	  ƒ}t|tdt|ƒ d ƒƒ}t| ƒ |¡s¢t‚t|ƒ |¡s´t‚t|ƒ |¡sÆt‚d S )
NrP   r   rS   rQ   rT   rg   rR   rh   rY   )	r   r0   r1   r   r   r   r3   rj   r[   )rP   rQ   rR   rk   r   rl   rm   ra   ra   rb   Útest_moment_generating_functionR   s    
2ro   c                  C   s®   t dddƒ} tddddgƒ}tddƒ}tdƒ}|s:td	ƒ | d d
 }t|ƒ}|d d|  d }t|ƒ}|d
 d }t|ƒ}	dd„ }
|
|ƒs’t‚|
|ƒsžt‚|
|	ƒsªt‚d S )NrP   r   rS   rQ   rT   rg   rR   Úscipyú#Scipy is not installed. Abort testsrY   rX   rV   c                 S   s@   t | dƒr8t | dƒst | dƒr8t| jƒr8|  ¡ | kr8dS dS d S )NÚ__iter__ÚnextÚ__next__TF)ÚhasattrÚcallablerr   )Úobjra   ra   rb   Úis_iterators   s    ÿþýü
ûz%test_sample_iter.<locals>.is_iterator)r   r0   r1   rK   rH   rB   r[   )rP   rQ   rR   rp   ÚexprÚiteratorZexpr2Z	iterator2Zexpr3Z	iterator3rx   ra   ra   rb   Útest_sample_itera   s     
r{   c                     s”   t dddƒt dddƒ } }tdƒ‰ ttdd„ ƒ tt‡ fdd„ƒ t| ƒ| jksTt‚td	|  d ƒ| jksnt‚td	|  | ƒt|j| jƒks�t‚d S )
NrP   r   rS   rQ   Úxc                   S   s   t dƒS )Né   ©r(   ra   ra   ra   rb   Ú<lambda>†   ó    ztest_pspace.<locals>.<lambda>c                      s   t ˆ dk ƒS ©NrS   r~   ra   ©r|   ra   rb   r   ‡   r€   rT   )r   r   rG   Ú
ValueErrorr(   r[   r=   rd   ra   r‚   rb   Útest_pspace‚   s    r„   c                  C   sf   t dddƒ} tddƒ}t dddƒ}t dddƒ}d|  | }| t| |f||fƒ¡d| | ksbt‚d S )Nr|   r   rS   ÚyrT   rY   )r   r   Úsubsr>   r[   )rP   rQ   r`   ÚYYry   ra   ra   rb   Útest_rs_swapŒ   s    
rˆ   c                  C   sb   t dddƒ} t dddƒ}| j|jks(t‚| |ks4t‚| j| jjksFt‚t dddƒ} t dddƒ} d S )Nr|   r   rS   rT   Úlambdar   )r   r\   r[   Únamerd   ra   ra   rb   Útest_RandomSymbol—   s    r‹   c                  C   s"   t dddƒ} d|   | ¡st‚d S )Nr|   r   rS   rT   )r   Údiffr[   ©rP   ra   ra   rb   Útest_RandomSymbol_diff¤   s    rŽ   c                  C   s    t tdƒƒ} | jtƒ kst‚d S )Nr|   )rA   r   r(   rC   r[   r‚   ra   ra   rb   Útest_random_symbol_no_pspace©   s    r�   c                      s0   t dddƒ‰ t dddƒ‰tt‡ ‡fdd„ƒ d S )Nr|   r   rS   rT   c                      s   t ˆ ˆkƒS ©N©r   ra   rd   ra   rb   r   ±   r€   ztest_overlap.<locals>.<lambda>)r   rG   rƒ   ra   ra   rd   rb   Útest_overlap­   s    r’   c                  C   s\   t dddƒ} t dddƒ}| j}|j}t| | ƒt||ƒks>t‚t| | ƒt||ƒksXt‚d S ©NrP   r   rS   rQ   )r   r(   r=   r[   )rP   rQ   ZpxÚpyra   ra   rb   Útest_IndependentProductPSpace´   s    r•   c                   C   s   t dƒdkst‚d S )NrX   )r    r[   ra   ra   ra   rb   Útest_E½   s    r–   c                  C   sŽ   t dddƒ} tddd�}tddƒ}t| | dkƒtd	ƒ d	 tj ttƒd	  ksTt‚t||d	kƒtd	ƒksnt‚t	t|ƒ 
¡  d	¡d
ƒsŠt‚d S )NrP   r   rS   ÚDrV   )ZsidesÚGç      à?rT   g=
×£p=ö?)r   r   r,   r!   r   r   ÚHalfr	   r[   rL   ZevalfÚround)rP   r—   r˜   ra   ra   rb   Útest_HÁ   s    
2rœ   c               	      s   t ddƒ} tdddƒ‰ tddd�‰td	ƒ}|s6td
ƒ t| ƒdksFt‚tt| ˆ  ƒtƒs\t‚t	| ˆ  dkˆ dk dd�j
s|t‚t| ˆ  dd�j
s’t‚t| d ˆ  dd�j
s¬t‚t| ˆ  d dd�j
sÆt‚t| ˆ  dd�j
sÜt‚tt‡ ‡fdd„ƒ t	tˆ ƒdkdd�dk�st‚t	tˆ ƒdktˆ ƒdk dd�dk�s6t‚tdd„ t| dd�D ƒƒ�sVt‚tdd„ t| | dkdd�D ƒƒ�s|t‚tdƒ}|�s’tdƒ tt| ƒ|j|jfƒ�s®t‚ttˆ ƒ|jƒ�sÄt‚tt| dd�|jƒ�sÞt‚tƒ � t| dd� W 5 Q R X d S )NrP   rW   rQ   r   rS   ÚzT©Úintegerrp   rq   )rS   rT   rY   rV   rX   rW   é
   ©Z
numsamplesrT   c                      s   t ˆ ˆkdd�S )NrX   r¡   r‘   ra   ©rQ   r�   ra   rb   r   Û   r€   ztest_Sample.<locals>.<lambda>g      ð?c                 s   s   | ]}|t d dƒkV  qdS )rS   rg   N©Úrange©Ú.0Úira   ra   rb   Ú	<genexpr>à   s     ztest_Sample.<locals>.<genexpr>c                 s   s   | ]}|t d dƒkV  qdS )rV   rg   Nr£   r¥   ra   ra   rb   r¨   á   s     rY   Únumpyz#Numpy is not installed. Abort tests)Úsize)r   r   r   rK   rH   r+   r[   Ú
isinstanceÚfloatr   Ú	is_numberr    r"   rG   r_   r   r   Úallr#   Zint32Zint64Zfloat64ZndarrayrJ   )rP   rp   r©   ra   r¢   rb   Útest_SampleÊ   s4    
 ( &r¯   c                  C   s\   t dƒ} | stdƒ tdddƒ}tddd�}ttd||  |dtfƒ|d	kd
d�jsXt‚d S )Nrp   rq   rQ   r   rS   r�   Trž   rT   rY   r¡   )	rK   rH   r   r   r    r   r   r­   r[   )rp   rQ   r�   ra   ra   rb   Útest_samplingEî   s    r°   c                  C   sN   t dddƒ} t dddƒ}t| dƒ}t| |dkƒ}| |  krD|ksJn t‚d S )NrP   r   rS   rQ   TrT   )r   r$   r[   )rP   rQ   ÚAÚBra   ra   rb   Ú
test_givenø   s
    
r³   c                  C   s$  t ddƒ} tddtjƒ}tddddƒ}t| dƒdks8t‚t|dƒtjksLt‚t|dƒtddƒksdt‚tdƒ\}}}}tdd|ƒ}tdd	ddƒ}t||ƒ|d t	d|ƒ d| d|  t	d|ƒ  d| d t	d
|ƒ  ksÞt‚t||ƒdt	d
|ƒ d dt	d|ƒ d  t	d|ƒd  k�s t‚d S )NrP   rT   rQ   rR   rV   rS   rY   zx y z lr    r   rg   é   )
r1   r.   r   rš   r/   r-   r[   r   r   r   )rP   rQ   rR   r|   r…   r�   Úlra   ra   rb   Útest_factorial_moment  s4    
 ÿÿ
ÿÿ
ÿÿÿr¶   c                  C   s    t dƒt dƒ } }t| d| ƒs$t‚t| d| ƒr6t‚tdddƒtdddƒ } }t| |ƒs^t‚t| d|  ƒspt‚tt| |ƒt| | dƒƒ\}}t||ƒsœt‚d S )NrP   rQ   rT   r   rS   rY   )r   r%   r[   r&   r   r$   r   r
   ©rP   rQ   r`   r‡   ra   ra   rb   Útest_dependence  s    r¸   c                  C   sR   t dƒt dƒ } }t| ||  ƒs$t‚tt| |ƒ| | dkƒ\}}t||ƒsNt‚d S )NrP   rQ   rX   )r   r&   r[   r$   r   r·   ra   ra   rb   Útest_dependent_finite   s    r¹   c                  C   sl   t dddƒt dddƒ } }tddd�}tddd�}t| | t| | |ƒƒ}t||ƒ|t tfƒdksht‚d S )	NrP   r   rS   rQ   r|   T)Úrealr�   )r   r   r#   r
   r   r   r[   )rP   rQ   r|   r�   Zdensra   ra   rb   Útest_normality*  s
    r»   c                  C   s*   t ddƒ} t| ƒ}| ¡ t| ƒks&t‚d S )NrP   rW   )r   r?   Zdoitr#   r[   )rP   Údra   ra   rb   Útest_Density3  s    
r½   c                     sz   G dd„ dt tƒ} | tdƒtdƒƒ‰ˆjdks2t‚ˆjdks@t‚tt‡fdd„ƒ G dd„ dt tƒ‰ tt‡ fd	d„ƒ d S )
Nc                   @   s   e Zd ZdZdS )z test_NamedArgsMixin.<locals>.Foo)ÚfooÚbarN)Ú__name__Ú
__module__Ú__qualname__Z	_argnamesra   ra   ra   rb   ÚFoo9  s   rÃ   rS   rT   c                      s   ˆ j S r�   )Zbazra   )Úara   rb   r   A  r€   z%test_NamedArgsMixin.<locals>.<lambda>c                   @   s   e Zd ZdS )z test_NamedArgsMixin.<locals>.BarN)rÀ   rÁ   rÂ   ra   ra   ra   rb   ÚBarC  s   rÅ   c                      s   ˆ t dƒt dƒƒjS ©NrS   rT   )r   r¾   ra   )rÅ   ra   rb   r   F  r€   )r   r@   r   r¾   r[   r¿   rG   ÚAttributeError)rÃ   ra   )rÅ   rÄ   rb   Útest_NamedArgsMixin8  s    rÈ   c                   C   s0   t dƒdƒdkst‚t dƒdƒtdƒks,t‚d S )NrY   rT   r   )r#   r[   r   ra   ra   ra   rb   Útest_density_constantH  s    rÉ   c                  C   st   t dƒdkst‚tddƒdks"t‚tddƒdks4t‚tdƒ} t | ƒdksLt‚t| dƒdks^t‚t| dƒdkspt‚d S )NrY   r   rV   r|   r´   rS   )r"   r[   r:   r   r‚   ra   ra   rb   Útest_cmoment_constantL  s    rÊ   c                  C   sX   t ddƒdkst‚t ddƒdks$t‚t ddƒdks6t‚tdƒ} t | dƒ| d ksTt‚d S )NrY   r   rS   rT   é	   r|   )r;   r[   r   r‚   ra   ra   rb   Útest_moment_constantU  s
    rÌ   c                  C   s,   t dƒdkst‚tdƒ} t | ƒ| ks(t‚d S )NrY   r|   )r<   r[   r   r‚   ra   ra   rb   Útest_median_constant\  s    rÍ   c                  C   s   t dddƒ} | jst‚d S )Nr|   r   rS   )r   Zis_realr[   r‚   ra   ra   rb   Ú	test_reala  s    rÎ   c                      s¾   t ddƒ‰ tˆ tk ƒdkst‚tˆ tkƒdks2t‚tˆ dk ˆ tkƒdksLt‚tˆ tk ˆ tkƒdksft‚tˆ tk ˆ dkƒdks€t‚tˆ dk ˆ dkƒdksšt‚ttdd„ ƒ tt‡ fdd„ƒ d S )	NrP   rY   rS   r   rT   c                   S   s   t dƒS r�   r‘   ra   ra   ra   rb   r   n  r€   z"test_issue_10052.<locals>.<lambda>c                      s   t ˆ dk dƒS rÆ   r‘   ra   r�   ra   rb   r   o  r€   )r   r   r   r[   rG   rƒ   ra   ra   r�   rb   Útest_issue_10052f  s    
rÏ   c                  C   s<   dddœ} t d| ƒ}t|ƒdks$t‚t|dkƒdks8t‚d S )Nr™   )r   rS   rP   rT   r   )r   r    r[   r   )r#   rP   ra   ra   rb   Útest_issue_11934q  s    

rÐ   c                  C   sN   t ddƒ} t| | kƒdkst‚t| | kƒdks2t‚t| | d kƒdksJt‚d S )NrP   rV   rS   r   )r   r   r[   r�   ra   ra   rb   Útest_issue_8129w  s    
rÑ   c                  C   sŒ   t dddƒ} t dddƒ}t| dk| ƒ}t|dk | ƒ}t| | dk| ƒ}|t| | dk| ƒks`t‚|ttjtjtjƒkszt‚|tjksˆt‚d S r“   )r   r   r[   rM   r   rš   ZZeroZOne)rP   rQ   ÚUÚVÚWra   ra   rb   Útest_issue_12237}  s    rÕ   c                  C   s6  t dddƒ} t dddƒ}tdƒ\}}tddƒ}tdd	ƒ}t|ƒrDt‚t|| ƒrTt‚t|| ƒrdt‚tt|d |d gƒƒr€t‚t| ƒsŒt‚t| d | ƒs t‚t||d  ƒs´t‚t|d
kƒsÄt‚t|d dk ƒsØt‚t|ƒsät‚t| | |d  ƒsüt‚tt| |d g||ggƒƒ�st‚tt| dƒƒ�s2t‚d S )NrP   r   rS   rQ   za, brÒ   rT   r²   gÍÌÌÌÌÌì?rX   rY   rV   )r   r   r)   r4   rD   r[   r   r
   )rP   rQ   rÄ   Úbr˜   r²   ra   ra   rb   Útest_is_random‡  s$    

"r×   c                  C   s   t dƒ} t| ƒ}tdƒ}tdddƒ}tdddƒ}ttddƒƒ}t|ƒtƒ ksPt‚t|ƒtƒ ksbt‚t|ƒtƒ kstt‚t|ƒt	|ƒksˆt‚t
|dkƒt|dkƒks¤t‚t|ƒt|ƒks¸t‚t|ƒt|ƒksÌt‚t||ƒt||ƒksät‚t||ƒt||ƒksüt‚d S )	Nr|   rQ   rR   rT   rS   rÔ   ÚRIrY   )r   rA   rF   rE   r   r(   rC   r[   r    r6   r   r7   r"   r5   r9   r8   )r|   rP   rQ   rR   rÔ   rØ   ra   ra   rb   Útest_issue_12283›  s    rÙ   c                  C   s’   t ddƒ} tdddƒ}tt| dƒƒtdƒd ks4t‚tt|dƒƒdksJt‚tt| dk| dk ƒƒdksht‚tt| dk| dkƒƒtdƒd ksŽt‚d S )NrP   rW   rQ   r   rS   rT   rY   )r   r   r   r
   r   r[   r   r   rd   ra   ra   rb   Útest_issue_6810¬  s    
rÚ   c                  C   s®   t dƒ\} }td| |ƒ}tddd�}tt||  d| | |    t|| d| | |    t| |ƒ ƒ t| |ƒ |dk|| k@ ftdfƒ|d| fƒ}| t	|ƒ¡sªt
‚d S )Nzn pr²   ÚkTrž   rS   r   )r   r.   rN   r   rO   r   r   r   rj   r!   r[   )ÚnÚpr²   rÛ   Úeqra   ra   rb   Útest_issue_20286´  s
    trß   N)‰Zsympy.concrete.summationsr   Zsympy.core.basicr   Zsympy.core.containersr   Zsympy.core.functionr   ri   r   r   r   r	   Zsympy.core.relationalr
   Zsympy.core.singletonr   Zsympy.core.symbolr   r   Z(sympy.functions.combinatorial.factorialsr   r   Z&sympy.functions.elementary.exponentialr   r   Z(sympy.functions.elementary.trigonometricr   r   Z'sympy.functions.special.delta_functionsr   Zsympy.integrals.integralsr   Zsympy.logic.boolalgr   r   Zsympy.matrices.denser   Zsympy.sets.setsr   Zsympy.tensor.indexedr   Zsympy.statsr   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   Zsympy.stats.rvr=   r>   r?   r@   rA   rB   rC   rD   rE   rF   Zsympy.testing.pytestrG   rH   rI   rJ   Zsympy.externalrK   rL   Zsympy.stats.frv_typesrM   rN   Z$sympy.functions.elementary.piecewiserO   rc   re   rn   ro   r{   r„   rˆ   r‹   rŽ   r�   r’   r•   r–   rœ   r¯   r°   r³   r¶   r¸   r¹   r»   r½   rÈ   rÉ   rÊ   rÌ   rÍ   rÎ   rÏ   rÐ   rÑ   rÕ   r×   rÙ   rÚ   rß   ra   ra   ra   rb   Ú<module>   sz   �0	!
		$
		
		
