
    Qi+                     <   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lCmDZDmEZEmFZFmGZG d dlHmIZI d dlJmKZK  e
d          ZLd ZMd ZNd ZOeDd             ZPd ZQd ZReEd              ZSd! ZTd" ZUd# ZVd$ ZWd% ZXd& ZYd' ZZd( Z[d) Z\d* Z]d+ 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skip)Expectation)FallingFactorial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expectationr9   )lps     z/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/sympy/stats/tests/test_discrete_rv.pytest_PoissonDistributionrF   "   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d l	}n# t          $ r t          d           Y nw xY wt          d	|                    d
                    }t          |          d
k    sJ t          d	|                    d                    }t          |          dk    sJ d}t          d|          }t          |          |k    sJ t          t          |d                    |dz  k    sJ t          |dz            ||dz  z   k    sJ d S )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Q4419999QqS66QqS====A;;!1::,Q//////aE***K88888a!e,,,k:::::8''**a////$ $ $ $"#####$RZZ 45566AQ44'''''RZZ 56677AQ44(((((	
BRAQ442::::a##$$A----QT77b2q5j      s   *C/ /D
D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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Q44AE19QKK!QU)AqD.(2244!<<<<71::a==AqDFAEQU#33333333rG   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 )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   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SrG   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,   rf   rh   s   rE   <lambda>ztest_Hermite.<locals>.<lambda>b       wsB33 rG   c                  &    t          d           S rk   rm   rn   s   rE   ro   ztest_Hermite.<locals>.<lambda>f   rp   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_Hermiterx   _   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/))))))rG   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 )
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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8rG   c                     d} t           j        dz  }t          d| |          }t          |          | d|z
  z  |z  k    sJ t	          |          | d|z
  z  |dz  z  k    sJ t          |dz  d|z  z   dz             t          |dz            dt          |          z  z   dz   cxk    rt          dd          k    sn J t          t          |d          t                    sJ d S )	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Q441A;?""""A;;!q1u+1,,,,,QTAaCZ!^!Q$!AaDD& 01 4KKKK8K8KKKKKKKaE***K8888888rG   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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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. . . . . . .rG   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   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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WrG   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 )NrL   r9   r=   r?   )r	   r1   r   r   r   r   )sr9   s     rE   	test_zetar      s    	!AS!AQ444!99tAww&&&&&HQKK  Q$qs))d1Q3iil*d1ggqj%9 9 9 9 9 9 9rG   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 )Nr^   r=   rL   r_   r\   er;      }   	      @   =   m       rs   iiG   r?   )r+   r   r*   r9   r   r   r   r   equalsr	   Infinityrb   Zero)r^   r_   r[   s      rE   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-''''''rG   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?   r9   T)integerrg   )setcheckr[   r;      c            	      R    t            t          t          d           d          S )Nr\   T)r   )r2   r   range)r9   s   rE   ro   z!test_DiscreteRV.<locals>.<lambda>   s#    z!Q	5880DDQQQ rG   )r	   r
   r2   Naturalsr   r+   r   rO   domainr   r5   rw   r   )rD   pdfDr^   r9   s       @rE   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::::::rG   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tr9   mpmathc                 B                           fdgd          S )Nc                      |           S )N )r9   fr   s    rE   ro   z^test_precomputed_characteristic_functions.<locals>.test_cf.<locals>.<lambda>.<locals>.<lambda>   s    aa1gg rG   r<   )	maxdegree)nsum)r   r   r   support_lower_limitsupport_upper_limits   `rE   ro   zLtest_precomputed_characteristic_functions.<locals>.test_cf.<locals>.<lambda>   s:    $5$5$5$5$5!486AC $ E 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_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 	0rG   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   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(((((rG   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?   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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AFFFF=,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*<<<<<<<rG   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 )Nr^   r;   r\   rs   r   r?   r=   )r+   r	   r{   r   r   r   )r^   s    rE   test_Orr     s    #qvARAq1u(2r"2"22222RAq1u!AE((****RQA1$$$$$$rG   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 )
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99A5AJ#:#:::::A??%1a..0000A5Aq>>111111rG   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 )	Nr^   r?   r;   r_   r=   r   r   )r+   r   r*   r   r   r   r   s     rE   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""""""rG   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=   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b1~~%%c**++JL L L Lqb1~~%%c**++	=> > > > R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   rx   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   rG   rE   <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 B A A A A A A A A A A A 8 8 8 8 8 8 E E E E E E
F3KK@ @ @! ! !6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 0rG   