
    sg)                        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 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! 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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5 d dl6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZB d dlCmDZDmEZEmFZF d dlGmHZH  e
d      ZId ZJd ZKd ZLeDd        ZMd ZNd ZOeEd        ZPd  ZQd! ZRd" ZSd# ZTd$ ZUd% ZVd& ZWd' ZXd( ZYd) ZZd* Z[y+),    )Sum)IRationaloopiS)Symbol)imre)log)floor)sqrt)	Piecewise)besseli)beta)zeta)	FiniteSet)simplify)lambdify)EqNe)exp)Or)Range)PEvariancedensitycharacteristic_functionwheremoment_generating_functionskewnesscdfkurtosis
coskewness)PoissonDistributionGeometricDistributionFlorySchulzPoisson	GeometricHermiteLogarithmicNegativeBinomialSkellam	YuleSimonZeta
DiscreteRV)slownocache_failraises)Expectationxc                     d} t        |       }t        |j                  d      j                         dz
        dk  sJ t        |j                  d      j                         dz
        dk  sJ |j	                  t
        t
              | k(  sJ |j	                  t
        dz  t
              |j	                  t
        t
              dz  z
  | k(  sJ y )N   
      MbP?g$@   )r'   absr$   evalfexpectationr7   )lps     U/var/www/html/venv/lib/python3.12/site-packages/sympy/stats/tests/test_discrete_rv.pytest_PoissonDistributionrD   !   s    	AAAquuRy 1$%,,,quuT{  "Q&'$...==A!###==Aq!AMM!Q$7$::a???    c                  x   d} t        d|       }t        |      | k(  sJ t        d|z        d| z  k(  sJ t        |      | k(  sJ t        |      t	        |       k(  sJ t        t        |d      t              sJ t        t        d|z  d      t              sJ |j                  j                  d      dk(  sJ y )Nr9   r7   r=   Fevaluater;   )	r*   r   r   r   r'   
isinstancer6   pspacecompute_expectation)rA   r7   s     rC   test_PoissonrL   *   s    	AQAQ4199QqS6QqS==A;!1:,Q////aE*K888a!e,k:::88''*a///rE   c                  0   t        d      } t        d      }t        d|       }t        |      d| z
  | z  k(  sJ t        |      dd| z
  z  | dz  z  z
  j	                         t        d      k(  sJ  t        |      |      | dz  |z  d| z
  |dz
  z  z  k(  sJ y )Nazr7   r=   r;   r   )r
   r)   r   r   r   r	   r   )rN   rO   r7   s      rC   test_FlorySchulzrP   7   s    sAsACAQ4AE19QK!QU)AqD.(224!<<<71:a=AqDFAEQU#33333rE   c                  R   t         j                  dz  } t        |       }|j                  t        t              d| z  k(  sJ |j                  t        dz  t              |j                  t        t              dz  z
  d| z
  | dz  z  k(  sJ t        |j                  d      j                         dz
        dk  sJ t        |j                  d      j                         dz
        dk  sJ t        dt        d      dz  	      } t        |      t        d
      dz        t        |t        d
      dz  k        k(  sJ t        dt        dd            }t        dt        dd            }t        |||z   |d|z  z         j                         t        d      t        dd      z  k(  sJ y )N   r;   r=   i N  r<   g33333@G   )rB      XYr9   r:      Q   i~  )r	   Oner(   r@   r7   r>   r$   r?   r+   r   r   r&   r   r   )rB   drS   rV   rW   s        rC   test_GeometricDistributionr\   @   sj   		Aa A==A!A#%%%==Aq!AMM!Q$7$::qsAqDjHHHquuU|!!#a'(4///quuW~##%)*T111#1a A3q6!A$q&>QqAaDF{^+++#x1~&A#x2'AaQAaC(113tCy"dAS7SSSSrE   c            	      v   t        dd      t        dd      t        t        fd       t        dd      t        dd      t        t        fd       t        dd      t        d      } t        d	      } t	        |      |       t        t        |       d
z
  z  t        d| z        d
z
  z  z         k(  sJ  t        |      |       t        t        t        | z        d
z
  z  t        dt        z  | z        d
z
  z  z         k(  sJ t        |      dz  z   k(  sJ t        d	dd      } t        |      d      dt        d      z  dz  k(  sJ t        |      dk(  sJ t        |      dk(  sJ t        |      t        dd      k(  sJ t        |      dt        d      z  dz  k(  sJ y )Na1T)positivea2)negativec                      t        d       S NHr,   r^   r`   s   rC   <lambda>ztest_Hermite.<locals>.<lambda>S       wsB3 rE   c                      t        d       S rc   re   rf   s   rC   rg   ztest_Hermite.<locals>.<lambda>W   rh   rE   r7   rd   r;   r=   rR   rT   rf   !   i      i     %   i  )r
   r5   
ValueErrorr,   r"   r   r    r   r   r   r   r%   r   r#   r   )r7   rd   r^   r`   s     @@rC   test_Hermiterp   P   s   	t	$B	t	$B
:34	t	$B	t	$B
:34	t	$BsARA(%a(+s2s1vz?.0#ac(Q,.?4@ 0A A A A%"1%a(CC!HqL0A.0#ac!e*q..A1B -C C C CQ42"9a A71:a=Bs2wJqL(((Q42::A;"A;(3s++++A;"T"X+c/)))rE   c                  z   t         j                  } t        d|       }t        |      |  d| z
  t	        d| z
        z  z  k(  sJ t        |      dt	        d      dz  z  dt	        d      z  z   k(  sJ t        d|dz  z  d|z  z   dz         ddt	        d      z  z   k(  sJ t        t        |d	      t              sJ y )
Nr7   r;   r=   r9   rT   rU   FrG   )r	   Halfr-   r   r   r   rI   r6   )rB   r7   s     rC   test_Logarithmicrt   i   s    	ACAQ4A2!a%3q1u:-....A;"SVQY,3q61111Qq!tVac\A!a#a&j.000aE*K888rE   c                  8   d} t         j                  dz  }t        d| |      }t        |      || z  d|z
  z  k(  sJ t	        |      || z  d|z
  dz  z  k(  sJ t        |dz  d|z  z   dz         t        dd      k(  sJ t        t        |d	      t              sJ y )
NrR   r9   r7   r;   r=   i#  rT   FrG   )r	   rZ   r.   r   r   r   rI   r6   )rrB   r7   s      rC   test_negative_binomialrw   r   s    	A		Aa#AQ41Q3!A#;A;!A#1q.(((QTAaCZ!^q 1111aE*K888rE   c            
      P   t        d      } t        d      }t        d      }t        d| |      } t        |      |      | |z  |dz  z  t        |  |z
        z  t	        |dt        | |z        z        z  k(  sJ t        |      j                         | | t        | |z         z  |t        | |z         z  z   z  || t        | |z         z  |t        | |z         z  z   z  z
  k(  sJ t        |      j                         | |z   k(  sJ t        |      | |z
  k(  sJ  t        |      |      t        | t        t        |z        z  | z
  |z
  |t        t         |z        z  z         k(  sJ  t        |      |      t        | t        |      z  | z
  |z
  |t        |       z  z         k(  sJ y )Nmu1mu2rO   r7   r=   )r
   r/   r   r   r   r   r#   expandr   r   r    r   r"   )ry   rz   rO   rV   s       rC   test_skellamr|   ~   s   
-C
-CsAS#A71:a=SW!,SD3J1T#c']?34 4 4 4A;3DsO(;cS3Y?  )  $!#&DsO(;c$sSy/>Q(Q#R$S S S SA;39,,,Q439%"1%a(CC!HsS 3sA2a4y=0-2 2 2 2(%a(+sCF
S3S!W,0. . . .rE   c                     ddl m}   | d      }t        d|      }t        t	        |            ||dz
  z  k(  sJ t        t        |            |dz  |dz
  dz  |dz
  z  z  k(  sJ t        t	        |d      t              sJ  t        |      |      t        t        t        |      d	       t        |      z  dz   |dk\  fd
      k(  sJ y )Nr   r   r9   r7   r;   r=   FrG   rT   )r   T)sympy.core.singletonr	   r0   r   r   r   rI   r6   r$   r   r   r   )r	   rhor7   s      rC   test_yule_simonr      s    &
A$C#sAAaD>SC!G_,,,HQK CFsQwlcAg.F$GGGGaE*K8883q6!9	Dq1$5#5eAh#>#BAF"KYWWWWrE   c                  &   t        d      } t        d|       }t        |      t        | dz
        t        |       z  k(  sJ t	        t        |            t        |       t        | dz
        z  t        | dz
        dz  z
  t        |       dz  z  k(  sJ y )NrR   r7   r;   r=   )r	   r1   r   r   r   r   )sr7   s     rC   	test_zetar      s    	!AS!AQ44!9tAw&&&&HQK Q$qs)d1Q3il*d1gqj%9 9 9 9rE   c            	          t        dt        dd            } t        dd      }t        dt              }t	        t        | d            t        dd	      k(  sJ t	        | dk        t        d
d      k(  sJ t	        | dkD        t        dd	      k(  sJ t	        | dk\        t        dd      k(  sJ t	        | dk        t        dd	      k(  sJ t	        t        | d            t        dd	      k(  sJ t	        t        |d            dt        d      z  dz  k(  sJ t	        |dk        dt        d      z  k(  sJ t	        |dkD        j                  dt        dd      dt        d      z  dz  z   z  t        d      z  dz        sJ t	        |dk\        j                  dt        dd      dt        d      z  dz  z   z  t        d      z  dz        sJ t	        |dk        dt        d      z  dz  k(  sJ t	        t        |d            j                  dt        d      z  dt        dd      dt        d      z  dz  z   z  t        d      z  dz  z         sJ t	        | t        j                  k        t        j                  u sJ t	        | t        j                  kD        t        j                  u sJ t	        |dk        t        dt        z
  z  k(  sJ t	        t        |d            t        t         dz   dz  z  k(  sJ y )NrV   r;   rR   rW   rT   er9      }   	      @   =   m       rk   iiG   r=   )r+   r   r*   r7   r   r   r   r   equalsr	   InfinityrZ   Zero)rV   rW   rS   s      rC   test_discrete_probabilityr      s   #x1~&AQA#qAR1X;(2s++++QU8x2&&&QU8xC((((Q!V9R((((Q!V9S))))R1X;(3,,,,R1X;"SW*Q,&&&QU8r#b'z!!!QU8??2xR01SV8B;>?BGIJJJQ!V9Bb 1Ac!fHRK ?@RHJKKKQ!V93r7
1$$$R1X;
3r7
R#r*Qs1vXb[89#b'A!CCE E EQ^%%%Q^&&&QU8q!A#wR1X;!aR!VaK-'''rE   c            	      X   t        d      dz  } t        ddd      | d| z
  dz
  z  z  }t        |t         j                  d      }t	        |      t	        t        dt        d      dz              cxk(  rdk(  sJ  J t        |dkD        t        d      d	z  k(  sJ |j                  j                  j                  t         j                  k(  sJ t        t        fd
       t        dz  t         j                        }t        |dk        dk(  sJ t	        |      t        k(  sJ y )Nr;   r=   r7   T)integerr_   )setcheckrS   r9      c            	      @    t          t        t        d       d      S )NrT   T)r   )r2   r   range)r7   s   rC   rg   z!test_DiscreteRV.<locals>.<lambda>   s    z!Q	580DDQ rE   )r	   r
   r2   Naturalsr   r+   r   rJ   domainr   r5   ro   r   )rB   pdfDrV   r7   s       @rC   test_DiscreteRVr      s    	!QAsD40A
QUa!e
C1cqzz6AQ41YsAaDF+,111111QU8qtAv88??!**,,,
:QR 	1ac1::&AQU8q==Q42::rE   c            
         dd l fd}  | t        dt        dd            dj                          | t	        dt        dd            dj                          | t        ddt        dd	            dj                          | t        d
d      dj                          | t        dd      dj                          | t        dd      dj                         y )Nr   c                    t        |       }t        d      }t        d      }t        |g t        |       |      d      }t        ||g ||      t	        t
        |z  |z        z  d      fd}dD ]\  } ||      }	 ||      }
t        t        |	      t        |
      z
        dk  sJ t        t        |	      t        |
      z
        dk  r\J  y )Ntr7   mpmathc                 :     j                   fdgd      S )Nc                      |       S )N )r7   fr   s    rC   rg   z^test_precomputed_characteristic_functions.<locals>.test_cf.<locals>.<lambda>.<locals>.<lambda>   s    a1g rE   r:   )	maxdegree)nsum)r   r   r   support_lower_limitsupport_upper_limits   `rC   rg   zLtest_precomputed_characteristic_functions.<locals>.test_cf.<locals>.<lambda>   s'    $5!486AC $ E rE   )r=   rR   r      g-q=)	r   r	   r   r    r   r   r>   r   r   )distr   r   r   r   r7   cf1cf2
test_pointn1n2r   r   s    ``        @rC   test_cfz:test_precomputed_characteristic_functions.<locals>.test_cf   s    dmcFcF s93D9!<hG aVSVC!AJ.9E ( 	0JZBZBr"v2'%///r"v2'%///	0rE   gr;   r9   rA   rR   nrU   rB   yrO   )	r   r+   r   infr-   r.   r*   r0   r1   )r   r   s    @rC   )test_precomputed_characteristic_functionsr      s    0* Ic8Aq>*Avzz:KXa^,a<S!Xa^4aDGCOQ

+Ic1q&**-DaL!VZZ(rE   c                     t        d      }  t        t        dt         j                              |       }|j	                  |       j                  | d      dk(  sJ  t        t        dt         j                              |       }|j	                  |       j                  | d      dt        d      z  k(  sJ  t        t        ddt        dd	                  |       }|j	                  |       j                  | d      t        dd      k(  sJ  t        t        d
d            |       }|j	                  |       j                  | d      dk(  sJ  t        t        ddd            |       }|j	                  |       j                  | d      t        d       t        d      z   t        dt        d      z   t        d      z         z  k(  sJ  t        t        dd	            |       }t        |j	                  |       j                  | d            t        d	d      k(  sJ  t        t        dd            |       }|j	                  |       j                  | d      t         dz  dt#        d      z  z  k(  sJ y )Nr   r   r   r=   rA   r;   r   rR   r9   rB   r   r   rO   rT   Z   )r	   r"   r+   rs   diffsubsr-   r   r.   r   r*   r/   r   r0   r   r1   r   r   )r   geometric_mgflogarithmic_mgfnegative_binomial_mgfpoisson_mgfskellam_mgfyule_simon_mgfzeta_mgfs           rC    test_moment_generating_functionsr      s?   	#AF.yaff/EFqIMa %%a+q000J0S!&&1IJ1MO"''1-3q699926a!Q02235 %%a(--a3x1~EEE=,WS!_=a@KA##Aq)Q...@,WS!Q-?@CKA##	1r7(SV#Sc"gA)>%??@ @ @ C/	#q0AB1ENN''*//156(1a.HHH7)$sA,7:H==  A&"a%DG*<<<<rE   c                  $   t        dt        j                        } t        t	        | dk  | dkD              t        dd      k(  sJ t        t	        | dkD  | dkD              t        | dkD        k(  sJ t        t	        | dk\  | dk              dk(  sJ y )NrV   r9   rT   rk   r   r=   r;   )r+   r	   rs   r   r   r   )rV   s    rC   test_Orr     s    #qvvARAq1u(2r"2222RAq1u!AE(***RQA1$$$rE   c                     t        dt        dd            } t        dd      }t        | dz  dkD        j                  t        dt        j                  d      k(  sJ t        | dz  dk\        j                  t        dt        j                  d      k(  sJ t        |dz  dk        j                  t        d	dd      k(  sJ t        |dz  dk        j                  t        d	dd      k(  sJ y )
NrV   r;   rR   rW   rT   r=   r9   r   r   )r+   r   r*   r!   r   r   r	   r   rV   rW   s     rC   
test_wherer     s    #x1~&AQAA?%1::q"9999A5AJJ#::::A?%1a.000A5Aq>111rE   c                     t        dt        dd            } t        dd      }t        | dkD  | dkD        dk(  sJ t        | dkD  | dkD        t        dd      k(  sJ t        |dkD  |dk        dk(  sJ t        t	        |d      |dk\        dt        d      z  dz  k(  sJ t        t	        |d      t	        |d            dk(  sJ t        | dk  t	        | d            dk(  sJ t        | dkD  t	        | d            dk(  sJ y )	NrV   r=   r9   rW   r;   r   r   )r+   r   r*   r   r   r   r   s     rC   test_conditionalr     s   #x1~&AQAQUAE?aQUAE?hq!n,,,QUAE?aR1XqAv!CG)A+---R1Xr!Qx A%%%QUBq!H"""QUBq!H"""rE   c                  z   t        dt        j                        } t        dt        dd            }t	        t        | |z   dk        j                  t                    dk(  sJ t	        t        | |z   dkD        j                  t                    dk(  sJ t        t        | |z   d            t        dd      k(  sJ y )NX1X2r;   r9   z@Sum(Piecewise((1/(4*2**n), n >= -1), (0, True)), (n, -oo, -1))/3zdSum(Piecewise((2**(X2 - n - 2)*(3/2)**(1 - X2)/6, X2 - n <= 2), (0, True)), (X2, 1, oo), (n, 1, oo))   )	r+   r	   rs   r   strr   rewriter   r   )r   r   s     rC   test_product_spacesr   !  s    	4	 B	4!Q	(Bqb1~%%c*+JL L Lqb1~%%c*+	=> > > RR^B///rE   N)\sympy.concrete.summationsr   sympy.core.numbersr   r   r   r   r~   r	   sympy.core.symbolr
   $sympy.functions.elementary.complexesr   r   &sympy.functions.elementary.exponentialr   #sympy.functions.elementary.integersr   (sympy.functions.elementary.miscellaneousr   $sympy.functions.elementary.piecewiser   sympy.functions.special.besselr   &sympy.functions.special.beta_functionsr   &sympy.functions.special.zeta_functionsr   sympy.sets.setsr   sympy.simplify.simplifyr   sympy.utilities.lambdifyr   sympy.core.relationalr   r   r   sympy.logic.boolalgr   sympy.sets.fancysetsr   sympy.statsr   r   r   r   r    r!   r"   r#   r$   r%   r&   sympy.stats.drv_typesr'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   sympy.testing.pytestr3   r4   r5    sympy.stats.symbolic_probabilityr6   r7   rD   rL   rP   r\   rp   rt   rw   r|   r   r   r   r   r   r   r   r   r   r   r   rE   rC   <module>r      s    ) 4 4 " $ 9 6 5 9 : 2 7 7 % , - ( 6 " &/ / / /0 0 0 0 < ; 8
3K@
04 T T*29 9 9.$X9(. )@=6%2	#0rE   