
    \h+                     (   S SK Jr  S SKJrJrJrJr  S SKJr  S SK	J
r
  S SKJrJr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJr  S SKJr  S SKJr  S SKJr  S SKJr  S SK J!r!  S SK"J#r#J$r$  S SKJ%r%  S SK&J'r'  S SK(J)r)  S SK*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5  S SK6J7r7J8r8J9r9J:r:J;r;J<r<J=r=J>r>J?r?J@r@JArAJBrB  S SKCJDrDJErEJFrFJGrG  S SKHJIrI  S SKJJKrK  \
" S5      rLS rMS rNS rO\DS 5       rPS rQS rR\ES  5       rSS! rTS" rUS# rVS$ rWS% rXS& rYS' rZS( r[S) r\S* r]S+ r^g,)-    )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skip)Expectation)FallingFactorialxc                     Sn [        U 5      n[        UR                  S5      R                  5       S-
  5      S:  d   e[        UR                  S5      R                  5       S-
  5      S:  d   eUR	                  [
        [
        5      U :X  d   eUR	                  [
        S-  [
        5      UR	                  [
        [
        5      S-  -
  U :X  d   eg )N   
      MbP?g$@   )r'   absr$   evalfexpectationr9   )lps     Z/var/www/auris/envauris/lib/python3.13/site-packages/sympy/stats/tests/test_discrete_rv.pytest_PoissonDistributionrF   "   s    	AAAquuRy 1$%,,,quuT{  "Q&'$...==A!###==Aq!AMM!Q$7$::a???    c                  &   Sn [        SU 5      n[        U5      U :X  d   e[        SU-  5      SU -  :X  d   e[        U5      U :X  d   e[        U5      [	        U 5      :X  d   e[        [        USS9[        5      (       d   e[        [        SU-  SS9[        5      (       d   eUR                  R                  S5      S:X  d   e SS K	n[        S	WR                  S
5      5      n[        U5      S
:X  d   e[        S	UR                  S5      5      n[        U5      S:X  d   eSn[        SU5      n[        U5      U:X  d   e[        [        US5      5      US-  :X  d   e[        US-  5      XDS-  -   :X  d   eg ! [         a    [        S5         Nf = f)Nr;   r9   r?   Fevaluater=   r   znumpy not installedygKPh;x=gUPh;x=   z)r*   r   r   r   r'   
isinstancer7   pspacecompute_expectationnumpyImportErrorr6   float64r8   )rC   r9   nprK   l2rM   s         rE   test_PoissonrV   +   s   	AQAQ4199QqS6QqS==A;!1:,Q////aE*K8888a!e,k::::88''*a///$ 	RZZ 456AQ4''''RZZ 567AQ4((((	
BRAQ42::a#$A---QT7bq5j     $"#$s   E8 8FFc                  6   [        S5      n [        S5      n[        SU 5      n[        U5      SU -
  U -  :X  d   e[        U5      SSU -
  -  U S-  -  -
  R	                  5       [        S5      :X  d   e[        U5      " U5      U S-  U-  SU -
  US-
  -  -  :X  d   eg )NarM   r9   r?   r=   r   )r
   r)   r   r   r   r	   r   )rX   rM   r9   s      rE   test_FlorySchulzrY   F   s    sAsACAQ4AE19QK!QU)AqD.(224!<<<1:a=AqDFAEQU#33333rG   c                  V   [         R                  S-  n [        U 5      nUR                  [        [        5      SU -  :X  d   eUR                  [        S-  [        5      UR                  [        [        5      S-  -
  SU -
  U S-  -  :X  d   e[        UR                  S5      R                  5       S-
  5      S:  d   e[        UR                  S5      R                  5       S-
  5      S:  d   e[        S[        S5      S-  S	9n[        U5      " [        S
5      S-  5      [        U[        S
5      S-  :*  5      :X  d   e[        S[        SS5      5      n[        S[        SS5      5      n[        X3U-   USU-  -   5      R                  5       [        S5      [        SS5      -  :X  d   eg )NrL   r=   r?   i N  r>   g33333@G   )rD      XYr;   r<      Q   i~  )r	   Oner(   rB   r9   r@   r$   rA   r+   r   r   r&   r   r   )rD   dr[   r^   r_   s        rE   test_GeometricDistributionrd   O   sf   		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q6!A$q&>QqAaDF{^+++#x1~&A#x2'AaQAaC(113tCy"dAS7SSSSrG   c            	      f  ^^ [        SSS9m[        SSS9m[        [        UU4S j5        [        SSS9m[        SSS9m[        [        UU4S j5        [        SSS9m[        S5      n [        S	TT5      n[	        U5      " U 5      [        T[        U 5      S
-
  -  T[        SU -  5      S
-
  -  -   5      :X  d   e[        U5      " U 5      [        T[        [        U -  5      S
-
  -  T[        S[        -  U -  5      S
-
  -  -   5      :X  d   e[        U5      TST-  -   :X  d   e[        S	SSS9n[        U5      " S5      S[        S5      -  S-  :X  d   e[        U5      S:X  d   e[        U5      S:X  d   e[        U5      [        SS5      :X  d   e[        U5      S[        S5      -  S-  :X  d   eg )Na1T)positivea2)negativec                     > [        ST T5      $ NHr,   rf   rh   s   rE   <lambda>test_Hermite.<locals>.<lambda>b       wsB3rG   c                     > [        ST T5      $ rk   rm   rn   s   rE   ro   rp   f   rq   rG   r9   rl   r=   r?   rL   r\   rn   !   i      i     %   i  )r
   r5   
ValueErrorr,   r"   r   r    r   r   r   r   r%   r   r#   r   )r9   rl   rf   rh   s     @@rE   test_Hermitery   _   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1:a=Bs2wJqL(((Q42::A;"A;(3s++++A;"T"X+c/)))rG   c                     [         R                  n [        SU 5      n[        U5      U * SU -
  [	        SU -
  5      -  -  :X  d   e[        U5      S[	        S5      S-  -  S[	        S5      -  -   :X  d   e[        SUS-  -  SU-  -   S-   5      SS[	        S5      -  -   :X  d   e[        [        USS	9[        5      (       d   eg )
Nr9   r=   r?   r;   r\   r]   FrI   )r	   Halfr-   r   r   r   rN   r7   )rD   r9   s     rE   test_Logarithmicr}   x   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88rG   c                     Sn [         R                  S-  n[        SX5      n[        U5      U SU-
  -  U-  :X  d   e[	        U5      U SU-
  -  US-  -  :X  d   e[        US-  SU-  -   S-   5      [        US-  5      S[        U5      -  -   S-   s=:X  a  [        SS5      :X  d   e   e[        [        USS9[        5      (       d   eg )	NrL   r;   r9   r=   r?   i9' FrI   )r	   rb   r.   r   r   r   rN   r7   )rrD   r9   s      rE   test_negative_binomialr      s    	A		Aa#AQ41A;?"""A;!q1u+1,,,,QTAaCZ!^!Q$!AaD& 01 4K8KKKKKKaE*K8888rG   c            
      F   [        S5      n [        S5      n[        S5      n[        SX5      n[        U5      " U5      X-  US-  -  [        U * U-
  5      -  [	        US[        X-  5      -  5      -  :X  d   e[        U5      R                  5       X [        X-   5      -  U[        X-   5      -  -   -  X[        X-   5      -  U[        X-   5      -  -   -  -
  :X  d   e[        U5      R                  5       X-   :X  d   e[        U5      X-
  :X  d   e[        U5      " U5      [        U [        [        U-  5      -  U -
  U-
  U[        [        * U-  5      -  -   5      :X  d   e[        U5      " U5      [        U [        U5      -  U -
  U-
  U[        U* 5      -  -   5      :X  d   eg )Nmu1mu2rM   r9   r?   )r
   r/   r   r   r   r   r#   expandr   r   r    r   r"   )r   r   rM   r^   s       rE   test_skellamr      s   
-C
-CsASA1:a=SW!,SD3J1T#']?34 4 4 4A;3DO(;cSY?  )  $!#&DO(;c$sy/>Q(Q#R$S S S SA;39,,,Q439"1%a(CC!HsS 3sA2a4y=0-2 2 2 2%a(+sCF
S3S!W,0. . . .rG   c                     SSK Jn   U " S5      n[        SU5      n[        [	        U5      5      XS-
  -  :X  d   e[        [        U5      5      US-  US-
  S-  US-
  -  -  :X  d   e[        [	        USS9[        5      (       d   e[        U5      " U5      [        [        [        U5      S	5      * [        U5      -  S-   US:  4S
5      :X  d   eg )Nr   r   r;   r9   r=   r?   FrI   r\   )r   T)sympy.core.singletonr	   r0   r   r   r   rN   r7   r$   r   r   r   )r	   rhor9   s      rE   test_yule_simonr      s    &
A$C#sAAaD>S!G_,,,HQK CFsQwlcAg.F$GGGGaE*K8888q6!9	Dq1$5#5eAh#>#BAF"KYWWWWrG   c                  *   [        S5      n [        SU 5      n[        U5      [        U S-
  5      [        U 5      -  :X  d   e[	        [        U5      5      [        U 5      [        U S-
  5      -  [        U S-
  5      S-  -
  [        U 5      S-  -  :X  d   eg )NrL   r9   r=   r?   )r	   r1   r   r   r   r   )sr9   s     rE   	test_zetar      s    	!AS!AQ44!9tAw&&&&HQK Q$qs)d1Q3il*d1gqj%9 9 9 9rG   c            	      8   [        S[        SS5      5      n [        SS5      n[        S[        5      n[	        [        U S5      5      [        SS	5      :X  d   e[	        U S:  5      [        S
S5      :X  d   e[	        U S:  5      [        SS	5      :X  d   e[	        U S:  5      [        SS5      :X  d   e[	        U S:*  5      [        SS	5      :X  d   e[	        [        U S5      5      [        SS	5      :X  d   e[	        [        US5      5      S[        S5      -  S-  :X  d   e[	        US:  5      S[        S5      -  :X  d   e[	        US:  5      R                  S[        SS5      S[        S5      -  S-  -   -  [        S5      -  S-  5      (       d   e[	        US:  5      R                  S[        SS5      S[        S5      -  S-  -   -  [        S5      -  S-  5      (       d   e[	        US:*  5      S[        S5      -  S-  :X  d   e[	        [        US5      5      R                  S[        S5      -  S[        SS5      S[        S5      -  S-  -   -  [        S5      -  S-  -   5      (       d   e[	        U [        R                  :  5      [        R                  L d   e[	        U [        R                  :  5      [        R                  L d   e[	        US:  5      [        S[        -
  -  :X  d   e[	        [        US5      5      [        [        * S-   S-  -  :X  d   eg )Nr^   r=   rL   r_   r\   er;      }   	      @   =   m       rt   iiG   r?   )r+   r   r*   r9   r   r   r   r   equalsr	   Infinityrb   Zero)r^   r_   r[   s      rE   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JQ!V9Bb 1Ac!fHRK ?@RHJKKKKQ!V93r7
1$$$R1X;
3r7
R#r*Qs1vXb[89#b'A!CCE E E EQ^%%%Q^&&&QU8q!A#wR1X;!aR!VaK-'''rG   c            	      Z  ^ [        S5      S-  n [        SSSS9mU SU -
  TS-
  -  -  n[        TU[         R                  SS9n[	        U5      [	        [        S[        S5      S-  5      5      s=:X  a  S:X  d   e   e[        US:  5      [        S5      S	-  :X  d   eUR                  R                  R                  [         R                  :X  d   e[        [        U4S
 j5        [        TST-  [         R                  5      n[        US:  5      S:X  d   e[	        U5      [        :X  d   eg )Nr=   r?   r9   T)integerrg   )setcheckr[   r;      c            	      :   > [        T T [        [        S5      6 SS9$ )Nr\   T)r   )r2   r   range)r9   s   rE   ro   !test_DiscreteRV.<locals>.<lambda>   s    z!Q	580DDQrG   )r	   r
   r2   Naturalsr   r+   r   rO   domainr   r5   rx   r   )rD   pdfDr^   r9   s       @rE   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::rG   c            
        ^ SS K mU4S jn U " [        S[        SS5      5      STR                  5        U " [	        S[        SS5      5      STR                  5        U " [        SS[        SS	5      5      STR                  5        U " [        S
S5      STR                  5        U " [        SS5      STR                  5        U " [        SS5      STR                  5        g )Nr   c                   >^^^ [        U 5      n[        S5      n[        S5      n[        U/[        U 5      " U5      S5      n[        XT/U" U5      [	        [
        U-  U-  5      -  S5      mUUUU4S jnS H_  nU" U5      n	U" U5      n
[        [        U	5      [        U
5      -
  5      S:  d   e[        [        U	5      [        U
5      -
  5      S:  a  M_   e   g )Ntr9   mpmathc                 6   >^  TR                  UU 4S jTT/SS9$ )Nc                    > T" U T5      $ )N )r9   fr   s    rE   ro   ^test_precomputed_characteristic_functions.<locals>.test_cf.<locals>.<lambda>.<locals>.<lambda>   s    a1grG   r<   )	maxdegree)nsum)r   r   r   support_lower_limitsupport_upper_limits   `rE   ro   Ltest_precomputed_characteristic_functions.<locals>.test_cf.<locals>.<lambda>   s%    $5!486AC $ ErG   )r?   rL   r      g-q=)	r   r	   r   r    r   r   r@   r   r   )distr   r   r   r   r9   cf1cf2
test_pointn1n2r   r   s    ``        @rE   test_cf:test_precomputed_characteristic_functions.<locals>.test_cf   s    dmcFcF s3D9!<hG aVSVC!AJ.9E (JZBZBr"v2'%///r"v2'%/// (rG   gr=   r;   rC   rL   nr]   rD   rK   rM   )	r   r+   r   infr-   r.   r*   r0   r1   )r   r   s    @rE   )test_precomputed_characteristic_functionsr      s    0* Ic8Aq>*Avzz:KXa^,a<S!Xa^4aDGCOQ

+Ic1q&**-DaL!VZZ(rG   c            
         [        S5      n [        [        S[         R                  5      5      " U 5      nUR	                  U 5      R                  U S5      S:X  d   e[        [        S[         R                  5      5      " U 5      nUR	                  U 5      R                  U S5      S[        S5      -  :X  d   e[        [        SS[        SS	5      5      5      " U 5      nUR	                  U 5      R                  U S5      [        S
S5      :X  d   e[        [        SS5      5      " U 5      nUR	                  U 5      R                  U S5      S:X  d   e[        [        SSS5      5      " U 5      nUR	                  U 5      R                  U S5      [        S5      * [        S5      -   [        S[        S5      -   [        S5      -   5      -  :X  d   e[        [        SS	5      5      " U 5      n[        UR	                  U 5      R                  U S5      5      [        S	S5      :X  d   e[        [        SS5      5      " U 5      nUR	                  U 5      R                  U S5      [         S-  S[#        S5      -  -  :X  d   eg )Nr   r   r   r?   rC   r=   r   rL   r;   r<   rD   r   rK   rM   r\   Z   )r	   r"   r+   r|   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           rE    test_moment_generating_functionsr      s'   	#A.yaff/EFqIMa %%a+q0000S!&&1IJ1MO"''1-3q69996a!Q02235 %%a(--a3xAFFF,WS!_=a@KA##Aq)Q...,WS!Q-?@CKA##	1r7(SV#Sc"gA)>%??@ @ @ 0	#q0AB1ENN''*//156(1a.HHH)$sA,7:H==  A&"a%DG*<<<<rG   c                  *   [        S[        R                  5      n [        [	        U S:  U S:  5      5      [        SS5      :X  d   e[        [	        U S:  U S:  5      5      [        U S:  5      :X  d   e[        [	        U S:  U S:  5      5      S:X  d   eg )Nr^   r;   r\   rt   r   r?   r=   )r+   r	   r|   r   r   r   )r^   s    rE   test_Orr     s    #qvvARAq1u(2r"2222RAq1u!AE(***RQA1$$$rG   c                     [        S[        SS5      5      n [        SS5      n[        U S-  S:  5      R                  [        S[        R                  S5      :X  d   e[        U S-  S:  5      R                  [        S[        R                  S5      :X  d   e[        US-  S:  5      R                  [        S	SS5      :X  d   e[        US-  S:*  5      R                  [        S	SS5      :X  d   eg )
Nr^   r=   rL   r_   r\   r?   r;   r   r   )r+   r   r*   r!   r   r   r	   r   r^   r_   s     rE   
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1rG   c                     [        S[        SS5      5      n [        SS5      n[        U S:  U S:  5      S:X  d   e[        U S:  U S:  5      [        SS5      :X  d   e[        US:  US:  5      S:X  d   e[        [	        US5      US:  5      S[        S5      -  S-  :X  d   e[        [	        US5      [	        US5      5      S:X  d   e[        U S:  [	        U S5      5      S:X  d   e[        U S:  [	        U S5      5      S:X  d   eg )	Nr^   r?   r;   r_   r=   r   r   )r+   r   r*   r   r   r   r   s     rE   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"""rG   c                  z   [        S[        R                  5      n [        S[        SS5      5      n[	        [        X-   S:  5      R                  [        5      5      S:X  d   e[	        [        X-   S:  5      R                  [        5      5      S:X  d   e[        [        X-   S5      5      [        SS5      :X  d   eg )NX1X2r=   r;   z@Sum(Piecewise((1/(4*2**n), n >= -1), (0, True)), (n, -oo, -1))/3zdSum(Piecewise((2**(X2 - n - 2)*(2/3)**(X2 - 1)/6, X2 - n <= 2), (0, True)), (X2, 1, oo), (n, 1, oo))   )	r+   r	   r|   r   strr   rewriter   r   )r   r   s     rE   test_product_spacesr   0  s    	4	 B	4!Q	(Bq1~%%c*+JL L Lq1~%%c*+	=> > > R^B///rG   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   r6    sympy.stats.symbolic_probabilityr7   (sympy.functions.combinatorial.factorialsr8   r9   rF   rV   rY   rd   ry   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   rG   rE   <module>r      s    ) 4 4 " $ 9 6 5 9 : 2 7 7 % , - ( 6 " &/ / / /0 0 0 0 B A 8 E
3K@!64 T T*29 9 9.$X9(. )@=6%2	#0rG   