U
    ZÊ¹j—  ã                   @   sx  d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	 d dl
mZ d dlmZmZ d dlmZmZ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 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(m)Z)m*Z*m+Z+m,Z,m-Z- d dl.m/Z/ d dl0m1Z1 d dl2m3Z3m4Z4 d dl5m6Z6 d dl7m8Z8m9Z9 d dl:m;Z; dd„ Z<dd„ Z=dd„ Z>dd „ Z?d!S )"é    )ÚSum)ÚAdd)ÚMul)ÚIntegerÚooÚpi)ÚPow)ÚEqÚNe)ÚDummyÚSymbolÚsymbols)Ú	factorial)Úexp)Úsqrt)Ú	Piecewise)Ú
DiracDelta)Úgamma)ÚIntegral)Úsimplify)ÚIndexedÚIndexedBase)ÚExprCondPair)ÚPoissonÚBetaÚExponentialÚPÚMultinomialÚMultivariateBeta)ÚNormal)ÚPoissonDistribution)ÚCompoundPSpaceÚCompoundDistribution)ÚMarginalDistribution)ÚpspaceÚdensity)Úignore_warningsc                  C   s   t dƒ} t ddd�}t|ddƒ}t| |ƒ}tt|ƒtƒs<t‚t|t||j	ƒƒt
|ƒksZt‚tddd	ƒ}td
|dƒ}t|ƒdƒ ¡ tdƒdttƒ  ksšt‚tt|t|d	ƒƒ| ƒƒtdƒt| d	 d  d ƒ dttƒ  ksàt‚tt|ƒ| ƒƒtdƒt| d  d ƒ dttƒ  k�st‚d S )NÚxÚlT©Zpositiveé   é   ÚN1r   é   ÚN2é
   é   é   )r   r   r   Ú
isinstancer$   r!   ÚAssertionErrorr%   r	   Úsymbolr    r   Údoitr   r   r   r   )r'   r(   ZrateÚXr,   r.   © r7   úY/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/stats/tests/test_mix.pyÚtest_density   s    
((ÿr9   c                  C   s   t ddd�\} }}tdd||ƒ}td| |d ƒ}t||d fƒ}ttdƒttttdƒt	tddd�t
ttdƒƒtdƒƒƒt	td	dd�t
ttdƒƒtd
ƒƒƒt	tt
ttdƒƒtdƒƒƒtdƒƒt	tt
ttdƒƒtd
ƒƒƒtdƒƒƒttt
ttdƒƒtdƒƒt
ttdƒƒtd
ƒƒƒtdƒƒƒttdƒdƒƒt	ttddd�ƒtdƒƒtttddd�t
ttdƒƒtdƒƒƒƒt	tt
ttdƒƒtdƒƒƒtdƒƒt	t
ttdƒƒtdƒƒttddd�tdƒƒƒt	t
ttdƒƒtd
ƒƒtt
ttdƒƒtdƒƒtdƒƒƒƒ}||ƒ|k�süt‚d S )Nza1 p1 p2Tr)   ÚCr*   ÚBr   Úp1Úp2r-   éÿÿÿÿÚa1)r   r   r   r#   r   r   r   r   r   r   r   r   r   r	   r   r   r3   )r?   r<   r=   r:   r;   ZMGRZmgrcr7   r7   r8   Útest_MarginalDistribution)   sJ    ÿÿ""ûÿÿúøÿÿ"ÿÿòr@   c                  C   sh   t ddƒ} t d| ƒ}tt|ƒtƒs&t‚tt|ƒjtƒs:t‚|jj d¡ ¡ t	dƒt	t	dƒƒ ksdt‚d S )NÚYr-   ÚZéþÿÿÿr>   )
r   r2   r$   r!   r3   Údistributionr"   Zpdfr5   r   )rA   rB   r7   r7   r8   Útest_compound_distribution@   s
    

rE   c               	   C   sL  t ddƒtddƒ } }tdƒ}tttdƒtt| ƒt|d ƒ |dtfƒ t|ƒ |dtfƒ|t dfƒ}tttdƒtt| ƒt|d ƒ |dtfƒ t|ƒ |dtfƒ|dtfƒ}t	t
| | dƒƒdksÎt‚t	t| | dƒƒdksèt‚ttƒ�R t	||  dk dd	� t¡ |¡�st‚t	||  dkdd	� t¡ |¡�s>t‚W 5 Q R X d S )
NrA   r-   ÚEÚkr>   r*   r   F)Úevaluate)r   r   r   r   r   r   r   r   r   r   r	   r3   r
   r&   ÚUserWarningZrewriteZdummy_eq)rA   rF   rG   Zexpr1Zexpr2r7   r7   r8   Útest_mix_expressionG   s*    ,ÿÿ
ÿ,ÿÿÿ
&rJ   N)@Zsympy.concrete.summationsr   Zsympy.core.addr   Zsympy.core.mulr   Zsympy.core.numbersr   r   r   Zsympy.core.powerr   Zsympy.core.relationalr	   r
   Zsympy.core.symbolr   r   r   Z(sympy.functions.combinatorial.factorialsr   Z&sympy.functions.elementary.exponentialr   Z(sympy.functions.elementary.miscellaneousr   Z$sympy.functions.elementary.piecewiser   Z'sympy.functions.special.delta_functionsr   Z'sympy.functions.special.gamma_functionsr   Zsympy.integrals.integralsr   Zsympy.simplify.simplifyr   Zsympy.tensor.indexedr   r   r   Zsympy.statsr   r   r   r   r   r   Zsympy.stats.crv_typesr   Zsympy.stats.drv_typesr    Zsympy.stats.compound_rvr!   r"   Zsympy.stats.joint_rvr#   Zsympy.stats.rvr$   r%   Zsympy.testing.pytestr&   r9   r@   rE   rJ   r7   r7   r7   r8   Ú<module>   s6    