
    g)                     ,   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[d+S ),    )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          |                    d                                          dz
            dk     sJ t          |                    d                                          dz
            dk     sJ |                    t
          t
                    | k    sJ |                    t
          dz  t
                    |                    t
          t
                    dz  z
  | k    sJ d S )N   
      MbP?g$@   )r'   absr$   evalfexpectationr7   )lps     ^/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/stats/tests/test_discrete_rv.pytest_PoissonDistributionrD   !   s    	AAAquuRyy  1$%%,,,,quuT{{  ""Q&''$....==A!####==Aq!!AMM!Q$7$7$::a??????    c                     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                            d          dk    sJ d S )Nr9   r7   r=   Fevaluater;   )	r*   r   r   r   r'   
isinstancer6   pspacecompute_expectation)rA   r7   s     rC   test_PoissonrL   *   s    	AQAQ4419999QqS66QqS====A;;!1::,Q//////aE***K88888a!e,,,k:::::8''**a//////rE   c                  ~   t          d          } t          d          }t          d|           }t          |          d| z
  | z  k    sJ t          |          dd| z
  z  | dz  z  z
                                  t          d          k    sJ  t          |          |          | dz  |z  d| z
  |dz
  z  z  k    sJ d S )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Q44AE19QKK!QU)AqD.(2244!<<<<71::a==AqDFAEQU#33333333rE   c                  ,   t           j        dz  } t          |           }|                    t          t                    d| z  k    sJ |                    t          dz  t                    |                    t          t                    dz  z
  d| z
  | dz  z  k    sJ t          |                    d                                          dz
            dk     sJ t          |                    d                                          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                                             t          d          t          dd          z  k    sJ d S )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\   @   s   		Aa  A==A!A#%%%%==Aq!!AMM!Q$7$7$::qsAqDjHHHHquuU||!!##a'((4////quuW~~##%%)**T1111#1a   A3q66!A$$q&>>QqAaDDF{^^++++#x1~~&&A#x2''AaQAaC((1133tCyy"dASAS7SSSSSSSrE   c            	      z   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 d S )Na1T)positivea2)negativec                  &    t          d           S NHr,   r^   r`   s   rC   <lambda>ztest_Hermite.<locals>.<lambda>S       wsB3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   sc   	t	$	$	$B	t	$	$	$B
:33333444	t	$	$	$B	t	$	$	$B
:33333444	t	$	$	$BsARA(%a((++s2s1vvz?.0#ac((Q,.?4@ 0A 0A A A A A%"1%%a((CC!HHqL0A.0#ac!e**q..A1B -C -C C C C CQ442"9a   A71::a==Bs2wwJqL((((Q442::::A;;"A;;(3s++++++A;;"T"XX+c/))))))rE   c                     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 d S )
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Q44A2!a%3q1u::-.....A;;"SVVQY,3q6611111Qq!tVac\A!a#a&&j.0000aE***K8888888rE   c                  r   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 d S )
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Q441Q3!A#;A;;!A#1q.((((QTAaCZ!^q 1 11111aE***K8888888rE   c            
      <   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          |                                          | | t          | |z             z  |t          | |z             z  z   z  || t          | |z             z  |t          | |z             z  z   z  z
  k    sJ t          |                                          | |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 d S )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34 4 4 4 4A;;3DsOO(;cS3Y?  )  $!#&DsOO(;c$sSy//>Q(Q#R$S S S S SA;;39,,,,Q4439%"1%%a((CC!HHsS 3sA2a4yy=0-2 -2 2 2 2 2(%a((++sCFF
S3S!WW,0. 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 d S )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AaDD>>SC!G_,,,,HQKK  CFsQwlcAg.F$GGGGGaE***K888883q66!99	Dq1$5$5#5eAhh#>#BAF"KYWWWW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 d S )NrR   r7   r;   r=   )r	   r1   r   r   r   r   )sr7   s     rC   	test_zetar      s    	!AS!AQ444!99tAww&&&&&HQKK  Q$qs))d1Q3iil*d1ggqj%9 9 9 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k              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k                                  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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                                        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
        k              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 d S )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      sO   #x1~~&&AQA#qAR1XX;;(2s++++++QU88x2&&&&QU88xC((((((Q!V99R((((((Q!V99S))))))R1XX;;(3,,,,,,R1XX;;"SWW*Q,&&&&QU88r#b''z!!!!QU88??2xR001SVV8B;>?BGIJJJJJQ!V99Bb 1 1Ac!ffHRK ?@RHJKKKKKQ!V993r77
1$$$$R1XX;;
3r77
R#r**Qs1vvXb[89#b''A!CCE E E E EQ^%%%%Q^&&&&QU88q!A#wR1XX;;!aR!VaK-''''''rE   c            	         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n J t          |dk              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 d S )Nr;   r=   r7   T)integerr_   )setcheckrS   r9      c            	      R    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880DDQQ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000A
QUa!e
C1cqz666AQ441YsAaDDF++,,1111111111QU88qttAv8?!*,,,,
:QQQQRRR 	1ac1:&&AQU88q====Q442::::::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                   d S )Nr   c                 4   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     sJ }d S )Ntr7   mpmathc                 B                           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    aa1gg 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$5$5$5$5!486AC $ E 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   s8   dmmcFFcFF s93D99!<<hGG aVSSVVC!AJJ.99E E E E E E E ( 	0 	0JZBZBr"vv2''%////r"vv2''%/////	0 	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   MMM0 0 0 0 0* GIc8Aq>>**Avz:::GKXa^^,,a<<<GS!Xa^^44aDDDGGCOOQ
+++GIc1q&*---GDaLL!VZ(((((rE   c                  V   t          d          }  t          t          dt           j                            |           }|                    |                               | d          dk    sJ  t          t          dt           j                            |           }|                    |                               | d          dt          d          z  k    sJ  t          t          ddt          dd	                              |           }|                    |                               | d          t          dd          k    sJ  t          t          d
d                    |           }|                    |                               | d          dk    sJ  t          t          ddd                    |           }|                    |                               | d          t          d           t          d          z   t          dt          d          z   t          d          z             z  k    sJ  t          t          dd	                    |           }t          |                    |                               | d                    t          d	d          k    sJ  t          t          dd                    |           }|                    |                               | d          t           dz  dt#          d          z  z  k    sJ d S )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af/E/EFFqIIMa  %%a++q0000J0S!&1I1IJJ1MMO""''1--3q66999926a!Q002 2235 5 %%a((--a33x1~~EEEE=,WS!__==a@@KA##Aq))Q....@,WS!Q-?-?@@CCKA##	1 r77(SVV#Sc"ggA)>%?%??@ @ @ @ C/	#q0A0ABB1EENN''**//15566(1a..HHHH7)$sA,,77::H==  A&&"a%DGG*<<<<<<<rE   c                  z   t          dt          j                  } t          t	          | dk     | dk                        t          dd          k    sJ t          t	          | dk    | dk                        t          | dk              k    sJ t          t	          | dk    | dk                         dk    sJ d S )NrV   r9   rT   rk   r   r=   r;   )r+   r	   rs   r   r   r   )rV   s    rC   test_Orr     s    #qvARAq1u(2r"2"2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k              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 d S )
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99A5AJ#:#:::::A??%1a..0000A5Aq>>111111rE   c                     t          dt          dd                    } t          dd          }t          | dk    | dk              dk    sJ t          | dk    | dk              t          dd          k    sJ t          |dk    |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k    t	          | d                    dk    sJ d S )	NrV   r=   r9   rW   r;   r   r   )r+   r   r*   r   r   r   r   s     rC   test_conditionalr     sE   #x1~~&&AQAQUAE??aQUAE??hq!nn,,,,QUAE??aR1XXqAv!CGG)A+----R1XXr!Qxx  A%%%%QUBq!HH""""QUBq!HH""""""rE   c                     t          dt          j                  } t          dt          dd                    }t	          t          | |z   dk                                   t                              dk    sJ t	          t          | |z   dk                                  t                              dk    sJ t          t          | |z   d                    t          dd          k    sJ d S )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 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 4 4 4 4 4 4 4 4 4 4 " " " " " " $ $ $ $ $ $ 9 9 9 9 9 9 9 9 6 6 6 6 6 6 5 5 5 5 5 5 9 9 9 9 9 9 : : : : : : 2 2 2 2 2 2 7 7 7 7 7 7 7 7 7 7 7 7 % % % % % % , , , , , , - - - - - - ( ( ( ( ( ( ( ( 6 6 6 6 6 6 " " " " " " & & & & & &/ / / / / / / / / / / / / / / / / / / / / / / / / /0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 < ; ; ; ; ; ; ; ; ; 8 8 8 8 8 8
F3KK@ @ @
0 
0 
04 4 4 T T T* * *29 9 9 9 9 9. . .$X X X9 9 9( ( (.   ) ) )@= = =6% % %2 2 2	# 	# 	#0 0 0 0 0rE   