
    sg2                        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 Zed Zfd Zgd Zhd Zid Zjd  Zkd! Zld" Zmd# Znd$ Zod% Zpd& Zqd' Zrd( Zse[d)        Ztd* Zud+ Zvd, Zwd- Zxd. Zyd/ Zzd0 Z{d1 Z|d2 Z}d3 Z~d4 Zd5 Zd6 Zd7 Zd8 Zd9 Zd: Zd; Zd< Zd= Zy>)?    )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                     t        d      t        d      }} t        ddd      }t        |dz  dk        j                  t	        dd      k(  sJ t        |dz  dk        j                         t	        dd      j                  |j                        k(  sJ t        t        | |kD  |dkD              j                         t        t        | j                  d	      t        |j                  d
            k(  sJ t        t        | dk        j                        dk(  sJ dt        | dk        j                  v sJ t        ddd      t        ddd      }} t        t        | dz  dk  | dk\              j                  t	        dd      k(  sJ t        | t        | dz  dk  | dk\              }|j                  j                  j                  t	        dd      k(  sJ |j                  j                  j                         t        d| j                  k  | j                  dz  dk  t         | j                  k  | j                  t        k        k(  sJ t        t               5  t        | | dz         }d d d        y # 1 sw Y   y xY w)NXYZr                     )r   r   r(   setr   
as_booleanas_relationalsymbolr   r   lenr%   r)   domainr	   rH   	TypeError)rR   rS   rT   XXs       L/var/www/html/venv/lib/python3.12/site-packages/sympy/stats/tests/test_rv.py
test_wherere   !   s*   s8SXqAsAqAA8B?222A&&(HRO,I,I!((,SSSSQUAE"#..0C
188QAHHa5* * * * uQU| A%%%a!e     #q!fS!Q/qAQTQYQ'(,,A>>>	q#adaia(	)B998Aq>11199&&(AM188Q;!+bS188^QXX]KL L L 
		 1a!e_  s   I33I<c                  P   t        ddd      t        ddd      }} t        t        d| z  dz               | hk(  sJ t        t        d| z  |z               | |hk(  sJ t        t        d| z  |j                  z               | hk(  sJ t        t        d            t               k(  sJ y )NrR   r   rU   rS   rV   )r   r\   r+   r_   rR   rS   s     rd   test_random_symbolsrh   8   s    #q!fS!Q/qA~acAg&'A3...~acAg&'Aq6111~acAHHn-.1#555~a !SU***    c            
      ,   ddl m}  t        ddd      }t        dg d      }t	        dd      }t        d	      }t        |t        |dz   dz              }t        |t        d
|z  | z        dz  t        d|z  | z        dz  z   t        || z        dz  z         }t        |t        dt        || z        z  dz
              }t        |      j                  |      sJ t        |      j                  |      sJ t        |      j                  |      sJ y )Nr   )IrR   rU   rS   rU   rV      rT   rV   _trm   r[   )
sympy.core.numbersrk   r   r1   r2   r   r   r   r3   dummy_eq)rk   rR   rS   rT   tr    QRs           rd   test_characteristic_functionrt   A   s    $s1QAW%AQAAq#q!teAg,Aq#ac!e*Q,QqSUA-AaC
:;Aq#a#ac(lQ&'(A #1%..q111"1%..q111"1%..q111ri   c            	         t        ddd      } t        dg d      }t        dd      }t        d      }t	        |t        |dz  dz              }t	        |t        d	|z        d
z  t        d|z        d
z  z   t        |      d
z  z         }t	        |t        dt        |      z  dz
              }t        |       j                  |      sJ t        |      j                  |      sJ t        |      j                  |      sJ y )NrR   r   rU   rS   rl   rT   rV   rn   rm   r[   )r   r1   r2   r   r   r   r4   rp   )rR   rS   rT   rq   r    rr   rs   s          rd   test_moment_generating_functionrv   R   s    s1QAW%AQAAq#ad1f+Aq3qs8A:AaC
*SVAX57Aq#a#a&j1n%&A &a(11!444%a(11!444%a(11!444ri   c                  B   t        ddd      } t        dg d      }t        dd      }t        d      }|st	        d	       | dz  d
z   }t        |      }|dz  d|z  z   dz   }t        |      }|d
z  dz   }t        |      }	d }
 |
|      sJ  |
|      sJ  |
|	      sJ y )NrR   r   rU   rS   rl   rT   rV   scipy#Scipy is not installed. Abort testsr[   rZ   rX   c                     t        | d      r@t        | d      st        | d      r(t        | j                        r| j                         | u ryy)N__iter__next__next__TF)hasattrcallabler{   )objs    rd   is_iteratorz%test_sample_iter.<locals>.is_iterators   s@    C$S&!C$S\\"LLNc!ri   )r   r1   r2   rL   rI   rC   )rR   rS   rT   rx   expriteratorexpr2	iterator2expr3	iterator3r   s              rd   test_sample_iterr   a   s    s1QAY'AQA'"E23a4!8D4 HqD1Q3JNEE"IqD1HEE"I
 x   y!!!y!!!ri   c                  t   t        ddd      t        ddd      }} t        d      t        t        d        t        t        fd       t	        |       | j                  k(  sJ t	        d| z  dz         | j                  k(  sJ t	        d| z  |z         t        |j                  | j                        k(  sJ y )	NrR   r   rU   rS   xc                      t        d      S )N   r)    ri   rd   <lambda>ztest_pspace.<locals>.<lambda>   s
    ve} ri   c                       t         dk        S NrU   r   r   s   rd   r   ztest_pspace.<locals>.<lambda>   s    va!e} ri   rV   )r   r   rH   
ValueErrorr)   r>   )rR   rS   r   s     @rd   test_pspacer      s    #q!fS!Q/qAsA
:,-
:,-!9   !A#'?ahh&&&!A#'?6qxxJJJJri   c                      t        ddd      } t        dd      }t        ddd      }t        ddd      }d| z  |z   }|j                  t        | |f||f            d|z  |z   k(  sJ y )Nr   r   rU   yrV   r[   )r   r   subsr?   )rR   rS   rc   YYr   s        rd   test_rs_swapr      ss    sAqACA	Q	B	Q	BQ37D99WaVb"X./1R4"9<<<ri   c                      t        ddd      } t        ddd      }| j                  |j                  k(  sJ | |k7  sJ | j                  | j                  j                  k(  sJ t        ddd      } t        ddd      } y )Nr   r   rU   rV   lambdar   )r   r_   namerg   s     rd   test_RandomSymbolr      su    sAqAsAqA88qxx6M666QXX]]"""xAAxAAri   c                  J    t        ddd      } d| z  j                  |       sJ y )Nr   r   rU   rV   )r   diffrR   s    rd   test_RandomSymbol_diffr      s$    sAqAaC::a==ri   c                  ^    t        t        d            } | j                  t               k(  sJ y )Nr   )rB   r   r)   rD   r   s    rd   test_random_symbol_no_pspacer      s$    VC[!A88vxri   c                  d     t        ddd       t        ddd      t        t         fd       y )Nr   r   rU   rV   c                       t         kD        S Nr    rg   s   rd   r   ztest_overlap.<locals>.<lambda>   s    qQx ri   )r   rH   r   rg   s   @@rd   test_overlapr      s*    sAqAsAqA
:'(ri   c                      t        ddd      } t        ddd      }| j                  }|j                  }t        | |z         t        ||      k(  sJ t        | |z         t        ||      k(  sJ y NrR   r   rU   rS   )r   r)   r>   )rR   rS   pxpys       rd   test_IndependentProductPSpacer      sl    sAqAsAqA	
B	
B!a%=4R<<<<!a%=4R<<<<ri   c                  $    t        d      dk(  sJ y )NrZ   )r!   r   ri   rd   test_Er      s    Q4199ri   c                  |   t        ddd      } t        dd      }t        dd      }t        | | dkD        t	        d	       d	z  t
        j                  z   t	        t              d	z  z   k(  sJ t        ||d	kD        t	        d	      k(  sJ t        t        |      j                         j                  d	      d
      sJ y )NrR   r   rU   DrX   )sidesG      ?rV   g=
ףp=?)r   r   r-   r"   r   r   Halfr
   rM   evalfround)rR   r   r   s      rd   test_Hr      s    sAqACA#sAQA;3q6'!)aff,s2wqy8888QA;#a&   !

""1%t,,,ri   c                     t        dd      } t        ddd      t        dd      t        d	      }|st	        d
       t        |       dv sJ t        t        | z         t              sJ t        | z   dkD  dk  d      j                  sJ t        | z   d      j                  sJ t        | dz  z   d      j                  sJ t        | z   dz  d      j                  sJ t        | z   d      j                  sJ t        t        fd       t        t              dk  d      dk(  sJ t        t              dk  t              dk  d      dk(  sJ t!        d t#        | d      D              sJ t!        d t#        | | dkD  d      D              sJ t        d      }|st	        d       t        t        |       |j$                  |j&                  f      sJ t        t              |j(                        sJ t        t        | d      |j*                        sJ t-               5  t        | d       d d d        y # 1 sw Y   y xY w)NrR   rY   rS   r   rU   zTintegerrx   ry   )rU   rV   r[   rX   rZ   rY   
   
numsamplesrV   c                  $    t         kD  d      S )NrZ   r   r   )rS   r   s   rd   r   ztest_Sample.<locals>.<lambda>   s    aA!4 ri   g      ?c              3   8   K   | ]  }|t        d d      v   yw)rU   rm   Nrange.0is     rd   	<genexpr>ztest_Sample.<locals>.<genexpr>   s     CAqE!QKC   c              3   8   K   | ]  }|t        d d      v   yw)rX   rm   Nr   r   s     rd   r   ztest_Sample.<locals>.<genexpr>   s     HAqE!QKHr   r[   numpyz#Numpy is not installed. Abort tests)size)r   r   r   rL   rI   r,   
isinstancefloatr    	is_numberr!   r#   rH   rb   r   r   allr$   int32int64float64ndarrayrK   )rR   rx   r   rS   r   s      @@rd   test_Sampler      s   CAsAqAsD!A'"E23!9****fQUmU+++QUQYA"-7777QUr",,,,QTAX"%////a!eaZB'1111AEb)3333
945SVq[R(C///SVq[#a&1*4;;;Cr)BCCCCHAaCB)GHHHH'"E23fQi%++u{{!;<<<fQi///fQQ'777		!  qQ     s   9IIc                      t        d      } | st        d       t        ddd      }t        dd      }t	        t        d||z  z  |dt        f      |d	kD  d
      j                  sJ y )Nrx   ry   rS   r   rU   r   Tr   rV   r[   r   )rL   rI   r   r   r!   r   r	   r   )rx   rS   r   s      rd   test_samplingEr      sc    '"E23sAqAsD!AS1a4!Q$a!e:DDDDri   c                      t        ddd      } t        ddd      }t        | d      }t        | |dkD        }| |cxk(  r|k(  sJ  J y )NrR   r   rU   rS   TrV   )r   r%   )rR   rS   ABs       rd   
test_givenr      sM    sAqAsAqAaAaQA;Q;;;ri   c                     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(  sJ t        d      \  }}}}t        dd|      }t	        dd	dd      }t        ||      |dz  t        d|      z  d|z  d|z
  z  t        d|      z  z   d|z
  dz  t        d
|      z  z   k(  sJ t        ||      dt        d
|      z  dz  dt        d|      z  dz  z   t        d|      dz  z   k(  sJ y )NrR   rV   rS   rT   rX   rU   r[   zx y z lr   r   rm      )	r2   r/   r   r   r0   r.   r   r   r   )rR   rS   rT   r   r   r   ls          rd   test_factorial_momentr     s}   QAa AsAq!$AAq!Q&&&Aq!QVV+++Aq!Xa^333#JAq!QaAsB1%AAq!QT*:	1+ &!QU,Q22&367!eaZQ"6#&# # # # Aq!Q'71'=%=
&1%%b(&)+;Aq+A"+D&E E E Eri   c                  N   t        d      t        d      }} t        | d|z        sJ t        | d|z        rJ t        ddd      t        ddd      }} t        | |      sJ t        | d| z        sJ t	        t        | |      t        | |z   d            \  }}t        ||      sJ y )NrR   rS   rV   r   rU   r[   )r   r&   r'   r   r%   r   r   rR   rS   rc   r   s       rd   test_dependencer     s    s8SXqAq!A#AaC   #q!fS!Q/qAq!Q! 5A;1q5!-FBRri   c                      t        d      t        d      }} t        | || z         sJ t        t        | |      | |z   dkD        \  }}t        ||      sJ y )NrR   rS   rZ   )r   r'   r%   r   r   s       rd   test_dependent_finiter      sW    s8SXqA QA5A;A	*FBRri   c                      t        ddd      t        ddd      }} t        dd      }t        dd      }t        | |z
  t        | |z   |            }t	         ||      |t
         t
        f      dk(  sJ y )	NrR   r   rU   rS   r   T)realr   )r   r   r$   r   r   r	   )rR   rS   r   r   denss        rd   test_normalityr   *  sp    #q!fS!Q/qAsAsA1q5"QUA,'DT!Wq2#rl+q000ri   c                  n    t        dd      } t        |       }|j                         t        |       k(  sJ y )NrR   rY   )r   r@   doitr$   )rR   ds     rd   test_Densityr   3  s.    CA
A668wqz!!!ri   c                      G d dt         t              }  | t        d      t        d            j                  dk(  sJ j                  dk(  sJ t        t        fd        G d dt         t              t        t        fd       y )	Nc                       e Zd ZdZy) test_NamedArgsMixin.<locals>.Foo)foobarN)__name__
__module____qualname__	_argnamesr   ri   rd   Foor   9  s     	ri   r   rU   rV   c                       j                   S r   )baz)as   rd   r   z%test_NamedArgsMixin.<locals>.<lambda>A  s    155 ri   c                       e Zd Zy) test_NamedArgsMixin.<locals>.BarN)r   r   r   r   ri   rd   Barr   C  s    ri   r   c                  N      t        d      t        d            j                  S NrU   rV   )r   r   )r   s   rd   r   z%test_NamedArgsMixin.<locals>.<lambda>F  s    3qtQqT?#6#6 ri   )r   rA   r   r   r   rH   AttributeError)r   r   r   s    @@rd   test_NamedArgsMixinr   8  sk    !e^ ! 	AaD!A$A55A::55A::
>=)e^  >67ri   c                  n     t        d      d      dk(  sJ  t        d      d      t        d      k(  sJ y )Nr[   rV   r   )r$   r   r   ri   rd   test_density_constantr  H  s6    71:a=A71:a=JqM)))ri   c                      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(  sJ y )Nr[   r   rX   r   r   rU   )r#   r;   r   r   s    rd   test_cmoment_constantr  L  s    A;!1a=A1a=AsAA;!1b>Q1a=Ari   c                      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z  k(  sJ y )Nr[   r   rU   rV   	   r   )r<   r   r   s    rd   test_moment_constantr  U  s_    !Q<1!Q<1!Q<1sA!Q<1a4ri   c                  Z    t        d      dk(  sJ t        d      } t        |       | k(  sJ y )Nr[   r   )r=   r   r   s    rd   test_median_constantr  \  s+    !9>>sA!9>>ri   c                  :    t        ddd      } | j                  sJ y )Nr   r   rU   )r   is_realr   s    rd   	test_realr  a  s    sAqA999ri   c                      t        dd       t         t        k        dk(  sJ t         t        kD        dk(  sJ t         dk   t        kD        dk(  sJ t         t        k   t        kD        dk(  sJ t         t        k   dkD        dk(  sJ t         dk   dk(        dk(  sJ t        t        d        t        t         fd       y )NrR   r[   rU   r   rV   c                      t        d      S r   r   r   ri   rd   r   z"test_issue_10052.<locals>.<lambda>n  s
    qt ri   c                  "    t         dk  d      S r   r   r   s   rd   r   z"test_issue_10052.<locals>.<lambda>o  s    qQ{ ri   )r   r    r	   rH   r   r   s   @rd   test_issue_10052r  f  s    CAQV9>>QV9>>QUAFq   QVQV!!!QVQUq   QUAFq   
:|$
:*+ri   c                  l    ddd} t        d|       }t        |      dk(  sJ t        |dk\        dk(  sJ y )Nr   )r   rU   rR   rV   r   )r   r!   r    )r$   rR   s     rd   test_issue_11934r  q  s;    nGgAQ43;;a!e9>>ri   c                      t        dd      } t        | | k\        dk(  sJ t        | | kD        dk(  sJ t        | | dz   kD        dk(  sJ y )NrR   rX   rU   r   )r   r    r   s    rd   test_issue_8129r  w  sN    CAQ!V9>>QU8q==Q1W:??ri   c                  h   t        ddd      } t        ddd      }t        | dkD  |       }t        |dk  |       }t        | |z   dkD  |       }|t        | |z   dkD  |       k(  sJ |t        t        j                  t        j
                  t        j                        k(  sJ |t        j                  k(  sJ y r   )r   r    rN   r   r   ZeroOne)rR   rS   UVWs        rd   test_issue_12237r  }  s    sAqAsAqA	!a%A	!a%A	!a%!)QA!a%!)Q%affaffaee<<<<;;ri   c                  x   t        ddd      } t        ddd      }t        d      \  }}t        dd      }t        dd	      }t	        |      rJ t	        ||z         rJ t	        ||z        rJ t	        t        |dz  |dz  g            rJ t	        |       sJ t	        | dz  |z         sJ t	        ||dz  z         sJ t	        |d
kD        sJ t	        |d   dk        sJ t	        |      sJ t	        | |z  |d   z        sJ t	        t        | |d   g||gg            sJ t	        t        | d            sJ y )NrR   r   rU   rS   za, br  rV   r   g?rZ   r[   rX   )r   r   r*   r5   rE   r   r   )rR   rS   r   br   r   s         rd   test_is_randomr    sQ   sAqAsAqA6?DAqQ'Ac"A|QQAq!t-...Q<<QTAXQAXQUQqTAXQ<<QUQqT\"""Va1YA/0111R1Xri   c                  t   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(  sJ t        |      t               k(  sJ t        |      t        |      k(  sJ t        |dkD        t        |dkD        k(  sJ t        |      t        |      k(  sJ t        |      t        |      k(  sJ t        ||      t        ||      k(  sJ t        ||      t        ||      k(  sJ y )	Nr   rS   rT   rV   rU   r  RIr[   )r   rB   rG   rF   r   r)   rD   r!   r7   r    r8   r#   r6   r:   r9   )r   rR   rS   rT   r  r  s         rd   test_issue_12283r     s    AQASA31%A31%A	WT1-	.B!9   ":!!!!9   Q4;q>!!!QU8{1q5))))A;(1+%%%B<8B<'''az!Q////az!Q////ri   c                  N   t        dd      } t        ddd      }t        t        | d            t	        d      dz  k(  sJ t        t        |d            dk(  sJ t        t        | dkD  | dk              dk(  sJ t        t        | dkD  | dkD              t	        d      dz  k(  sJ y )NrR   rY   rS   r   rU   rV   r[   )r   r   r    r   r   r   r   rg   s     rd   test_issue_6810r"    s    CAsAqAR1X;!A$q&   R1X;!RAq1u!###SQA1Q46)))ri   c                  n   t        d      \  } }t        d| |      }t        dd      }t        t	        ||z   d|z
  | | z   z  z  t        ||z  d|z
  | | z   z  z  t        | |      z        z  t        | |      z  |dk\  || k  z  ft        df      |d| f      }|j                  t        |            sJ y )Nzn pr   kTr   rU   r   )
r   r/   rO   r   rP   r   r   r   rp   r"   )npr   r$  eqs        rd   test_issue_20286r(    s    5>DAqaAcT"A	YAq1uQ//AqD!a%A269J4J8TUWX>4Y0ZZ[cdegh[iilmqrlrwx|}w}k~  CF  HL  BM  N  QR  TU  WX  PY  
ZB;;qtri   N)sympy.concrete.summationsr   sympy.core.basicr   sympy.core.containersr   sympy.core.functionr   ro   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/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   sympy.stats.rvr>   r?   r@   rA   rB   rC   rD   rE   rF   rG   sympy.testing.pytestrH   rI   rJ   rK   sympy.externalrL   rM   sympy.stats.frv_typesrN   rO   $sympy.functions.elementary.piecewiserP   re   rh   rt   rv   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   ri   rd   <module>r?     sX   ) " ' & 6 6 $ " / Q = ? > / ) ' $ (        _ _ _ L L ( # 7 # :.+2"5"BK=

 )=-" H E EE$1"
8 * 

	,(0"*ri   