o
    oh2                     @   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 ZdRdS ZdTdU ZdVdW ZdXdY ZdZd[ Zd\d] Zd^d_ Zd`da ZdbS )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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   
as_booleanas_relationalsymbolr   r
   lenr$   r(   domainr   rG   	TypeError)rP   rQ   rR   XX rb   m/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/stats/tests/test_rv.py
test_where!   s&    *
*
*
"rd   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 )NrP   r   rS   rQ   rT   )r   rZ   r*   r]   rP   rQ   rb   rb   rc   test_random_symbols8   s
     rf   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   )IrP   rS   rQ   rS   rT      rR   rT   _tri   rY   )
sympy.core.numbersrg   r   r0   r1   r   r   r   r2   dummy_eq)rg   rP   rQ   rR   tr   QRrb   rb   rc   test_characteristic_functionA   s   
>rp   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 )NrP   r   rS   rQ   rh   rR   rT   rj   ri   rY   )r   r0   r1   r   r   r   r3   rl   )rP   rQ   rR   rm   r   rn   ro   rb   rb   rc   test_moment_generating_functionR   s   
2rq   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 )NrP   r   rS   rQ   rh   rR   rT   scipy#Scipy is not installed. Abort testsrY   rX   rV   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callablert   )objrb   rb   rc   is_iterators   s   z%test_sample_iter.<locals>.is_iterator)r   r0   r1   rK   rH   rB   )rP   rQ   rR   rr   expriteratorexpr2	iterator2expr3	iterator3rz   rb   rb   rc   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s*J td	|  d | jks7J td	|  | t|j| jksHJ d S )
NrP   r   rS   rQ   xc                   S      t dS )N   r(   rb   rb   rb   rc   <lambda>       ztest_pspace.<locals>.<lambda>c                      s   t  dk S NrS   r   rb   r   rb   rc   r          rT   )r   r   rG   
ValueErrorr(   r=   re   rb   r   rc   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s1J d S )Nr   r   rS   yrT   rY   )r   r   subsr>   )rP   rQ   ra   YYr{   rb   rb   rc   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   rS   rT   lambdar   )r   r]   namere   rb   rb   rc   test_RandomSymbol   s   r   c                  C   s"   t ddd} d|  | sJ d S )Nr   r   rS   rT   )r   diffrP   rb   rb   rc   test_RandomSymbol_diff   s   r   c                  C   s    t td} | jt ksJ d S )Nr   )rA   r   r(   rC   r   rb   rb   rc   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   rb   re   rb   rc   r      r   ztest_overlap.<locals>.<lambda>)r   rG   r   rb   rb   re   rc   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 NrP   r   rS   rQ   )r   r(   r=   )rP   rQ   pxpyrb   rb   rc   test_IndependentProductPSpace   s   r   c                   C   s   t ddksJ d S )NrX   )r    rb   rb   rb   rc   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 )NrP   r   rS   DrV   )sidesG      ?rT   g=
ףp=?)r   r   r,   r!   r   r   Halfr	   rL   evalfround)rP   r   r   rb   rb   rc   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|jfsJ tt |jsJ tt| dd|jsJ t  t| dd W d    d S 1 sw   Y  d S )NrP   rW   rQ   r   rS   zTintegerrr   rs   )rS   rT   rY   rV   rX   rW   
   
numsamplesrT   c                      s   t  kddS )NrX   r   r   rb   rQ   r   rb   rc   r      s    ztest_Sample.<locals>.<lambda>g      ?c                 s       | ]
}|t d dv V  qdS )rS   ri   Nrange.0irb   rb   rc   	<genexpr>       ztest_Sample.<locals>.<genexpr>c                 s   r   )rV   ri   Nr   r   rb   rb   rc   r      r   rY   numpyz#Numpy is not installed. Abort tests)size)r   r   r   rK   rH   r+   
isinstancefloatr   	is_numberr    r"   rG   r`   r   r   allr#   int32int64float64ndarrayrJ   )rP   rr   r   rb   r   rc   test_Sample   s6   
 &$"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 )Nrr   rs   rQ   r   rS   r   Tr   rT   rY   r   )rK   rH   r   r   r    r   r   r   )rr   rQ   r   rb   rb   rc   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 )NrP   r   rS   rQ   TrT   )r   r$   )rP   rQ   ABrb   rb   rc   
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 )NrP   rT   rQ   rR   rV   rS   rY   zx y z lr   r   ri      )	r1   r.   r   r   r/   r-   r   r   r   )rP   rQ   rR   r   r   r   lrb   rb   rc   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 )NrP   rQ   rT   r   rS   rY   )r   r%   r&   r   r$   r   r
   rP   rQ   ra   r   rb   rb   rc   test_dependence  s   r   c                  C   sR   t dt d} }t| ||  sJ tt| || | dk\}}t||s'J d S )NrP   rQ   rX   )r   r&   r$   r   r   rb   rb   rc   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s4J d S )	NrP   r   rS   rQ   r   T)realr   )r   r   r#   r
   r   r   )rP   rQ   r   r   densrb   rb   rc   test_normality*  s
   "r   c                  C   s*   t dd} t| }| t| ksJ d S )NrP   rW   )r   r?   doitr#   )rP   drb   rb   rc   test_Density3  s   
r   c                     sz   G dd dt t} | tdt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__	_argnamesrb   rb   rb   rc   Foo9  s    r   rS   rT   c                      s    j S r   )bazrb   )arb   rc   r   A  s    z%test_NamedArgsMixin.<locals>.<lambda>c                   @   s   e Zd ZdS )z test_NamedArgsMixin.<locals>.BarN)r   r   r   rb   rb   rb   rc   BarC  s    r   c                      s    t dt djS NrS   rT   )r   r   rb   )r   rb   rc   r   F  s    )r   r@   r   r   r   rG   AttributeError)r   rb   )r   r   rc   test_NamedArgsMixin8  s   r   c                   C   s0   t dddks
J t ddtdksJ d S )NrY   rT   r   )r#   r   rb   rb   rb   rc   test_density_constantH  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 )NrY   r   rV   r   r   rS   )r"   r:   r   r   rb   rb   rc   test_cmoment_constantL  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 )NrY   r   rS   rT   	   r   )r;   r   r   rb   rb   rc   test_moment_constantU  s
   r   c                  C   s,   t ddksJ td} t | | ksJ d S )NrY   r   )r<   r   r   rb   rb   rc   test_median_constant\  s   r   c                  C   s   t ddd} | jsJ d S )Nr   r   rS   )r   is_realr   rb   rb   rc   	test_reala  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 )	NrP   rY   rS   r   rT   c                   S   r   r   r   rb   rb   rb   rc   r   n  r   z"test_issue_10052.<locals>.<lambda>c                      s   t  dk dS r   r   rb   r   rb   rc   r   o  s    )r   r   r   rG   r   rb   rb   r   rc   test_issue_10052f  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   rS   rP   rT   r   )r   r    r   )r#   rP   rb   rb   rc   test_issue_11934q  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 )NrP   rV   rS   r   )r   r   r   rb   rb   rc   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s0J |ttjtjtjks=J |tjksDJ d S r   )r   r   rM   r   r   ZeroOne)rP   rQ   UVWrb   rb   rc   test_issue_12237}  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 )NrP   r   rS   rQ   za, br   rT   r   g?rX   rY   rV   )r   r   r)   r4   rD   r   r
   )rP   rQ   r   br   r   rb   rb   rc   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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   rQ   rR   rT   rS   r   RIrY   )r   rA   rF   rE   r   r(   rC   r    r6   r   r7   r"   r5   r9   r8   )r   rP   rQ   rR   r   r   rb   rb   rc   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 )NrP   rW   rQ   r   rS   rT   rY   )r   r   r   r
   r   r   r   re   rb   rb   rc   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   rS   r   )
r   r.   rN   r   rO   r   r   r   rl   r!   )npr   r   eqrb   rb   rc   test_issue_20286  s
   tr   N)sympy.concrete.summationsr   sympy.core.basicr   sympy.core.containersr   sympy.core.functionr   rk   r   r   r   r	   sympy.core.relationalr
   sympy.core.singletonr   sympy.core.symbolr   r   (sympy.functions.combinatorial.factorialsr   r   &sympy.functions.elementary.exponentialr   r   (sympy.functions.elementary.trigonometricr   r   'sympy.functions.special.delta_functionsr   sympy.integrals.integralsr   sympy.logic.boolalgr   r   sympy.matrices.denser   sympy.sets.setsr   sympy.tensor.indexedr   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<   sympy.stats.rvr=   r>   r?   r@   rA   rB   rC   rD   rE   rF   sympy.testing.pytestrG   rH   rI   rJ   sympy.externalrK   rL   sympy.stats.frv_typesrM   rN   $sympy.functions.elementary.piecewiserO   rd   rf   rp   rq   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   rb   rb   rb   rc   <module>   s|    0	!
		$
		
		
