o
    8Va/                     @   s  d dl mZmZmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z< d dl=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZG d dlHmIZImJZJmKZK d dlLmMZM d dlNmOZO d dlPmQZQ d dlRmSZS d d	lTmUZU d
d ZVdd ZWdd ZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`d d! Zad"d# Zbd$d% Zcd&d' ZdeKd(d) Zed*d+ Zfd,d- Zgd.d/ Zhd0d1 Zid2d3 Zjd4d5 Zkd6d7 Zld8d9 Zmd:d; Znd<d= Zod>d? Zpd@dA ZqdBdC ZrdDdE ZsdFdG ZtdHdI ZudJdK ZvdLdM ZwdNdO ZxdPdQ ZydRS )S    )SSymbolIntervalbinomialnanexpOrsymbolsEqcosAndTuple	integrateoosinSumBasicIndexed
DiracDeltaLambdalogpiFallingFactorialRationalMatrix)"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)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J t|d dk tdd|jks4J tt| |k|dk tt	| jd	t	|jd
ksPJ t
t| dk jdks]J dt| dk jv shJ tdddtddd} }tt| d dk| dkjtddksJ t| t| d dk| dk}|jjjtddksJ |jj td| jk| jd dkt | jk | jtk ksJ tt t| | d }W d    d S 1 sw   Y  d S )NXYZr                     )r   r   r'   setr   Z
as_booleanZas_relationalsymbolr   r
   lenr$   r(   domainr   rG   	TypeError)rO   rP   rQ   XX r_   ;/usr/lib/python3/dist-packages/sympy/stats/tests/test_rv.py
test_where   s&    *
*
*
"ra   c                  C   s   t dddt ddd} }ttd|  d | hksJ ttd|  | | |hks,J ttd|  |j | hks<J ttdt ksGJ d S )NrO   r   rR   rP   rS   )r   rY   r*   rZ   rO   rP   r_   r_   r`   test_random_symbols*   s
     rc   c                  C   s   ddl m}  tddd}tdg d}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_J t|	|shJ t|	|sqJ d S )Nr   )IrO   rR   rP   rR   rS      rQ   rS   _trf   rX   )
sympyrd   r   r0   r1   r	   r   r   r2   dummy_eq)rd   rO   rP   rQ   tr   QRr_   r_   r`   test_characteristic_function3   s   
>rm   c                  C   s   t ddd} tdg d}tdd}td}t|t|d d }t|td	| d
 td| d
  t|d
  }t|tdt| d }t| |sPJ t||sYJ t||sbJ d S )NrO   r   rR   rP   re   rQ   rS   rg   rf   rX   )r   r0   r1   r	   r   r   r3   ri   )rO   rP   rQ   rj   r   rk   rl   r_   r_   r`   test_moment_generating_functionD   s   
2rn   c                  C   s   t ddd} tdg d}tdd}td}|std	 | d d
 }t|}|d d|  d }t|}|d
 d }t|}	dd }
|
|sHJ |
|sNJ |
|	sTJ d S )NrO   r   rR   rP   re   rQ   rS   scipy#Scipy is not installed. Abort testsrX   rW   rU   c                 S   s<   t | drt | dst | drt| jr|  | u rdS dS )N__iter__next__next__TF)hasattrcallablerq   )objr_   r_   r`   is_iteratore   s   
z%test_sample_iter.<locals>.is_iterator)r   r0   r1   rJ   rH   rB   )rO   rP   rQ   ro   expriteratorZexpr2Z	iterator2Zexpr3Z	iterator3rw   r_   r_   r`   test_sample_iterS   s    
rz   c                     s   t dddt ddd} }td ttdd  tt fdd t| | jks*J td	|  d | jks7J td	|  | t|j| jksHJ d S )
NrO   r   rR   rP   xc                   S      t dS )N   r(   r_   r_   r_   r`   <lambda>x       ztest_pspace.<locals>.<lambda>c                      s   t  dk S NrR   r~   r_   r{   r_   r`   r   y       rS   )r   r   rG   
ValueErrorr(   r=   rb   r_   r   r`   test_pspacet   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s1J d S )Nr{   r   rR   yrS   rX   )r   r   Zsubsr>   )rO   rP   r^   YYrx   r_   r_   r`   test_rs_swap~   s   
,r   c                  C   sb   t ddd} t ddd}| j|jksJ | |ksJ | j| jjks#J t ddd} t ddd} d S )Nr{   r   rR   rS   lambdar   )r   rZ   namerb   r_   r_   r`   test_RandomSymbol   s   r   c                  C   s"   t ddd} d|  | sJ d S )Nr{   r   rR   rS   )r   ZdiffrO   r_   r_   r`   test_RandomSymbol_diff   s   r   c                  C   s    t td} | jt ksJ d S )Nr{   )rA   r   r(   rC   r   r_   r_   r`   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   rR   rS   c                      s   t  kS Nr   r_   rb   r_   r`   r      r   ztest_overlap.<locals>.<lambda>)r   rG   r   r_   r_   rb   r`   test_overlap   s   r   c                  C   s\   t ddd} t ddd}| j}|j}t| | t||ksJ t| | t||ks,J d S NrO   r   rR   rP   )r   r(   r=   )rO   rP   Zpxpyr_   r_   r`   test_IndependentProductPSpace   s   r   c                   C   s   t ddksJ d S )NrW   )r    r_   r_   r_   r`   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s*J t||d	ktd	ks7J tt|	 
d	d
sEJ d S )NrO   r   rR   DrU   )ZsidesG      ?rS   g=
ףp=?)r   r   r,   r!   r   r   Halfr   rK   Zevalfround)rO   r   r   r_   r_   r`   test_H   s   
2 r   c                     s  t dd} tddd tdddtd	}|std
 t| dv s#J tt|   ts.J t|   dk dk ddj	s>J t
|   ddj	sIJ t
| d   ddj	sVJ t
|   d ddj	scJ t|   ddj	snJ tt fdd tt dkdddksJ tt dkt dk dddksJ tdd t| ddD sJ tdd t| | dkddD sJ td}|std tt| |jsJ tt |jsJ tt| dd|jsJ d S )NrO   rV   rP   r   rR   zTZintegerro   rp   )rR   rS   rX   rU   rW   rV   
   Z
numsamplesrS   c                      s   t  kddS )NrW   r   r   r_   rP   r   r_   r`   r      s    ztest_Sample.<locals>.<lambda>c                 s       | ]
}|t d dv V  qdS )rR   rf   Nrange.0ir_   r_   r`   	<genexpr>       ztest_Sample.<locals>.<genexpr>c                 s   r   )rU   rf   Nr   r   r_   r_   r`   r      r   rX   numpyz#Numpy is not installed. Abort tests)size)r   r   r   rJ   rH   r+   
isinstancefloatr   	is_numberr    r"   rG   r]   r   r   allr#   Zint64Zfloat64Zndarray)rO   ro   r   r_   r   r`   test_Sample   s0   
 &$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s,J d S )Nro   rp   rP   r   rR   r   Tr   rS   rX   r   )rJ   rH   r   r   r    r   r   r   )ro   rP   r   r_   r_   r`   test_samplingE   s   0r   c                  C   sP   t ddd} t ddd}t| d}t| |dk}| |  kr#|ks&J  J d S )NrO   r   rR   rP   TrS   )r   r$   )rO   rP   ABr_   r_   r`   
test_given   s
   
 r   c                  C   s"  t dd} tddtj}tdddd}t| ddksJ t|dtjks&J t|dtddks2J td\}}}}tdd|}tdd	dd}t|||d td| d| d|  td|  d| d td
|  ksoJ t||dtd
| d dtd| d  td|d  ksJ d S )NrO   rS   rP   rQ   rU   rR   rX   zx y z lr   r   rf      )	r1   r.   r   r   r/   r-   r   r	   r   )rO   rP   rQ   r{   r   r   lr_   r_   r`   test_factorial_moment   s2   


r   c                  C   s   t dt d} }t| d| sJ t| d| rJ tdddtddd} }t| |s/J t| d|  s8J tt| |t| | d\}}t||sNJ d S )NrO   rP   rS   r   rR   rX   )r   r%   r&   r   r$   r   r
   rO   rP   r^   r   r_   r_   r`   test_dependence  s   r   c                  C   sR   t dt d} }t| ||  sJ tt| || | dk\}}t||s'J d S )NrO   rP   rW   )r   r&   r$   r   r   r_   r_   r`   test_dependent_finite  s   r   c                  C   sp   t dddt ddd} }tdddd}tdddd}t| | t| | |}t|||t tfdks6J d S )	NrO   r   rR   rP   r{   T)realZfiniter   )r   r   r#   r
   r   r   )rO   rP   r{   r   Zdensr_   r_   r`   test_normality  s
   "r   c                  C   s*   t dd} t| }| t| ksJ d S )NrO   rV   )r   r?   Zdoitr#   )rO   dr_   r_   r`   test_Density$  s   
r   c                     sr   G dd dt t} | ddjdksJ jdksJ 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	_argnamesr_   r_   r_   r`   Foo*  s    r   rR   rS   c                      s    j S r   )Zbazr_   )ar_   r`   r   2  s    z%test_NamedArgsMixin.<locals>.<lambda>c                   @   s   e Zd ZdS )z test_NamedArgsMixin.<locals>.BarN)r   r   r   r_   r_   r_   r`   Bar4  s    r   c                      s    ddj S NrR   rS   )r   r_   )r   r_   r`   r   7  r   )r   r@   r   r   rG   AttributeError)r   r_   )r   r   r`   test_NamedArgsMixin)  s   
r   c                   C   s0   t dddks
J t ddtdksJ d S )NrX   rS   r   )r#   r   r_   r_   r_   r`   test_density_constant9  s   r   c                  C   st   t ddksJ tdddksJ tdddksJ td} t | dks&J t| ddks/J t| ddks8J d S )NrX   r   rU   r{   r   rR   )r"   r:   r   r   r_   r_   r`   test_cmoment_constant=  s   r   c                  C   sX   t dddks	J t dddksJ t dddksJ td} t | d| d ks*J d S )NrX   r   rR   rS   	   r{   )r;   r   r   r_   r_   r`   test_moment_constantF  s
   r   c                  C   s,   t ddksJ td} t | | ksJ d S )NrX   r{   )r<   r   r   r_   r_   r`   test_median_constantM  s   r   c                  C   s   t ddd} | jsJ d S )Nr{   r   rR   )r   Zis_realr   r_   r_   r`   	test_realR  s   r   c                      s   t dd t tk dksJ t tkdksJ t dk  tkdks&J t tk  tkdks3J t tk  dkdks@J t dk  dkdksMJ ttdd  tt fdd d S )	NrO   rX   rR   r   rS   c                   S   r|   r   r   r_   r_   r_   r`   r   _  r   z"test_issue_10052.<locals>.<lambda>c                      s   t  dk dS r   r   r_   r   r_   r`   r   `  s    )r   r   r   rG   r   r_   r_   r   r`   test_issue_10052W  s   
r   c                  C   s<   ddd} t d| }t|dksJ t|dkdksJ d S )Nr   )r   rR   rO   rS   r   )r   r    r   )r#   rO   r_   r_   r`   test_issue_11934b  s   

r   c                  C   sN   t dd} t| | kdksJ t| | kdksJ t| | d kdks%J d S )NrO   rU   rR   r   )r   r   r   r_   r_   r`   test_issue_8129h  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s0J |ttjtjtjks=J |tjksDJ d S r   )r   r   rL   r   r   ZZeroZOne)rO   rP   UVWr_   r_   r`   test_issue_12237n  s   r   c                  C   s2  t ddd} t ddd}td\}}tdd}tdd	}t|r"J t|| r*J t|| r2J tt|d |d gr@J t| sFJ t| d | sPJ t||d  sZJ t|d
ksbJ t|d dk slJ t|srJ t| | |d  s~J tt| |d g||ggsJ tt| dsJ d S )NrO   r   rR   rP   za, br   rS   r   g?rW   rX   rU   )r   r	   r)   r4   rD   r   r
   )rO   rP   r   br   r   r_   r_   r`   test_is_randomx  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s(J t|t ks1J t|t ks:J t|t|ksDJ t	|dkt
|dkksRJ t|t|ks\J t|t|ksfJ t||t||ksrJ t||t||ks~J d S )	Nr{   rP   rQ   rS   rR   r   RIrX   )r	   rA   rF   rE   r   r(   rC   r    r6   r   r7   r"   r5   r9   r8   )r{   rO   rP   rQ   r   r   r_   r_   r`   test_issue_12283  s   r   c                  C   s   t dd} tddd}tt| dtdd ksJ tt|ddks%J tt| dk| dk dks4J tt| dk| dktdd ksGJ d S )NrO   rV   rP   r   rR   rS   rX   )r   r   r   r
   r   r   r   rb   r_   r_   r`   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	|sUJ d S )Nzn pr   kTr   rR   r   )
r	   r.   rM   r   rN   r   r   r   ri   r!   )npr   r   eqr_   r_   r`   test_issue_20286  s
   tr   N)zrh   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   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   Zsympy.externalrJ   Zsympy.core.numbersrK   Zsympy.stats.frv_typesrL   Zsympy.core.symbolrM   Z$sympy.functions.elementary.piecewiserN   ra   rc   rm   rn   rz   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_   r_   r_   r`   <module>   s\   l 0	!
		#
		
		
