
    \hO                     B   S SK Jr  S SKJrJr  S SKJr  S SKJrJ	r	J
r
  S SKJr  S SKJr  S SKJr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$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/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrCJDrDJErEJFrFJGrGJHrHJIrIJJrJJKrKJLrL  S SKMJNrNJOrOJPrP  S SKQJRrR  S SKSJTrT  S rUS rVS rWS rXS rYS rZS r[S  r\S! r]S" r^S# r_S$ r`S% raS& rbS' rcS( rdS) reS* rfS+ rgS, rhS- riS. rjS/ rkg0)1    )Sum)DictTuple)Function)IRationalnan)Eq)S)DummySymbolsymbols)sympify)binomial)harmonic)exp)sqrt)	Piecewise)cos)beta)AndOr)cancel)	FiniteSet)simplify)Matrix)DiscreteUniformDie	BernoulliCoinBinomialBetaBinomialHypergeometric
RademacherIdealSolitonRobustSolitonPEvariance
covarianceskewnessdensitywhereFiniteRVpspacecdfcorrelationmomentcmomentsmomentcharacteristic_functionmoment_generating_functionquantilekurtosismedian
coskewness)DieDistributionBinomialDistributionHypergeometricDistribution)Density)raisesc                     [        X5      [        [        X5      5      [        U5      -  :X  d   e[        X5      [        X5      [        U 5      -  [        U5      -  :X  d   eg N)r'   r   )ABs     X/var/www/auris/envauris/lib/python3.13/site-packages/sympy/stats/tests/test_finite_rv.py	BayesTestrE       sL    Q7aA	lQqT))))Q7ag!nqt++++    c                    ^^^ [        S5      u  mmmn [        STTT/5      n[        U5      TT-   T-   S-  :X  d   e[        [	        U5      TS-  TS-  -   TS-  -   S-  TS-  TS-  -   TS-  -   S-  -
  -
  5      S:X  d   e[        [        UT5      5      [        [        UT5      5      s=:X  a*  [        [        UT5      5      s=:X  a  [        S5      :X  d   e   e[        S[        SS	5      5      n[        U5      [        S
5      :X  d   e[	        U5      [        S5      :X  d   e[        U5      [        SS5      :X  d   e[        SS	5       Hj  n[        [        X#5      5      [        S5      :X  d   e[        X#:*  5      [        US-   5      S-  :X  d   e[        X#:  5      [        S	U-
  5      S-  :X  a  Mj   e   [        [        [        SS5      5      R                  5       5      [        [        [        S[        SS5      5      5      R                  5       5      :X  d   e[        U5      " U 5      [!        ["        T-  U -  5      S-  [!        ["        T-  U -  5      S-  -   [!        ["        T-  U -  5      S-  -   :X  d   e[%        U5      " U 5      [!        TU -  5      S-  [!        TU -  5      S-  -   [!        TU -  5      S-  -   :X  d   e['        [(        UUU4S j5        g )Nza b c tX      r   z1/3Y   z-1/2z33/4z1/10   
   DU      c            	      (   > [        ST T T TTT/5      $ )NZ)r   )abcs   rD   <lambda>&test_discreteuniform.<locals>.<lambda>A   s    sQ1aA4FGrF   )r   r   r(   r   r)   r'   r
   r   ranger9   r   dictr,   r   itemsr5   r   r   r6   r?   
ValueError)trH   rK   xrW   rX   rY   s       @@@rD   test_discreteuniformrb   %   s   #JAq!QaAY'AQ4AEAIq=   HQK1q!tad*A-1qsQqS10DDF GJKL L LR1X;!Bq!H+@2a8@%@@@@@U2q\*A Q41V9A;!F)###!9	"a((((2q\A{ai'''yAa!eHRK'''yAa!eHRK''' 
 C$**,-U1a[9:@@BCD D D #1%a(C!AJqL3qs1u:a<,G#aPQcRSe*UV,,VVVV%a(+s1Q3xzC!HQJ/FQqSRS/SSSS
:GHrF   c                     [        SS5      [        SS5      [        SS5      p!n [        S5      u  p4pV[        U 5      S[        R                  -   :X  d   e[        U 5      [        SS5      :X  d   e[        X-   5      S	:X  d   e[        X -   5      S	:X  d   e[        X0-  U-   5      U[        U 5      -  U-   :X  d   e[        X-   5      [        U 5      [        U5      -   s=:X  a  [        X-   S
5      :X  d   e   e[        X -   5      S[        U 5      -  s=:X  a  [        X -   S
5      :X  d   e   e[        U S5      S:X  d   e[        SU -  S5      S[        U S5      -  :X  d   e[        X5      [        R                  L d   e[        X U-   5      [        U 5      :X  d   e[        [        [        U [        R                  -  5      S5      5      S   [        R                  :X  d   e[        X5      S:X  d   e[        X5      [        X5      :X  d   e[        X-   S5      [!        X-   5      :X  d   e[        X-   S5      [#        X-   5      :X  d   e[        U S5      S:X  d   e[%        U S:  5      [        R                  :X  d   e[%        S
U -  S:  5      [        R                  :X  d   e[%        X:  5      [        SS5      :X  d   e[%        [        X5      5      [%        [        U S5      5      :X  d   e[        X S:  5      Ss=:X  a  ['        U SSU S:  5      :X  d   e   e[        XS:  5      [        U 5      s=:X  a  ['        U SSUS:  5      :X  d   e   e[        X-   [        X5      5      [        S
U -  5      :X  d   e['        U S5      S:X  d   e['        SU -  S
5      S['        U S
5      -  :X  d   e[)        U 5      " U5      [+        [,        US:  US:  -  4[        R.                  U[        SS5      :*  4[        S
5      U[        SS5      :*  4[        S5      U[        R                  :*  4[        S5      U[        S
S5      :*  4[        S5      U[        SS5      :*  4[        S5      US:*  45      :X  d   e[%        U S:  U S:  5      [        R.                  L d   e[%        X:  [        US5      5      [        R                  L d   e[%        [        X-   S5      5      [        SS5      :X  d   e[%        [        X-   S5      [        U S5      5      [        SS5      :X  d   e[        X-   5      [        X-   5      s=:X  a  [        X -   5      :w  d   e   e[        S
U -  X-  -   5      nU[        S5         [        SS5      :X  a+  U[        S5         [        SS5      :X  a  [        S5      U;  d   e[1        U 5      R2                  R5                  5       [7        S Vs/ s H  n[        U R8                  U5      PM     sn6 :X  d   e[;        U S:  5      R<                  [?        SSS5      :X  d   e[A        U 5      " U5      [C        S[D        -  U-  5      S-  [C        S[D        -  U-  5      S-  -   [C        S[D        -  U-  5      S-  -   [C        S[D        -  U-  5      S-  -   [C        S
[D        -  U-  5      S-  -   [C        [D        U-  5      S-  -   :X  d   e[G        U 5      " U5      [C        SU-  5      S-  [C        SU-  5      S-  -   [C        SU-  5      S-  -   [C        SU-  5      S-  -   [C        S
U-  5      S-  -   [C        U5      S-  -   :X  d   e[I        U 5      [?        SS5      :X  d   e[        SS	5      n	[I        U	5      [?        S5      :X  d   e[K        U S:  X-   S:  5        [K        [        X-
  U5      X!:  5        [K        U S:  U S
:  5        [M        [N        S 5        [M        [N        S 5        [M        [N        S 5        [        SSS9u  p[        SU
5      n	[        U	5      RP                  nU[S        [U        U
5      5      :X  d   e[=        URW                  U
S5      RY                  5       R[                  5       5      1 Sk:X  d   e[=        URW                  U
S5      RY                  5       R]                  5       5      [        SS5      1:X  d   e[_        S SS!9n[        U	5      Ra                  [c        [+        X-  X:*  4S"5      USU
45      5      (       d   e[        U	5      RW                  U
S5      RY                  5       [        SS5      :X  d   e[_        S#5      n[e        U	5      " U5      nURa                  [c        [+        SU
-  US:  X:*  -  4S"5      USU45      5      (       d   eURW                  U
SUS
05      RY                  5       [        SS5      :X  d   e[_        S$5      n[A        U	5      " U5      nURa                  [c        [+        [C        U[D        -  U-  5      U
-  US:  X:*  -  4S"5      USU
45      5      (       d   eURW                  U
S5      RY                  5       [C        S[D        -  U-  5      S-  [C        S
[D        -  U-  5      S-  -   [C        [D        U-  5      S-  -   :X  d   e[G        U	5      " U5      nURa                  [c        [+        [C        X-  5      U
-  US:  X:*  -  4S"5      USU
45      5      (       d   eURW                  U
S5      RY                  5       [C        SU-  5      S-  [C        S
U-  5      S-  -   [C        U5      S-  -   :X  d   eg s  snf )%NrH   rO   rK   rV   za b t prI   #      rT   rJ      r   rS   @   TrM      $      l   i     i:  rS   rJ   rI   rf   rM   rO   rQ   c                      [        SS5      $ )NrH   rN   r    rF   rD   rZ   test_dice.<locals>.<lambda>   s
    s3|rF   c                      [        SS5      $ )NrH   r   ro   rp   rF   rD   rZ   rq      s
    s3{rF   c                      [        SS5      $ )NrH         ?ro   rp   rF   rD   rZ   rq      s
    s3}rF   zn, kpositive>   rS   rJ   rI   rf   kintegerr   Tkir`   )3r   r   r(   r   Halfr)   r   r3   r*   Zeror,   r
   r   Pir1   r4   r+   r8   r'   r2   r7   r   r	   Oner/   domain
as_booleanr   symbolr-   setr   r5   r   r   r6   r9   rE   r?   r_   r]   r>   r;   subsdoitkeysvaluesr   dummy_eqr   r0   )rH   rK   rV   rW   rX   r`   pdirQ   nrw   densr{   cumufcfmgfs                    rD   	test_dicer   C   s}
   #qk3sA;C!A#JA!Q41qvv:A;(2r****QU8q==QU8q==QS1W:1Q4!###AE?hqkHQK7L715!;LLLLLLAE?a(1+oB1BBBBBB1a=A1Q3?bA....aqvv%%%aQ8A;...2c!ADD&k1%&t,666q!!!qA 111115!///15!///1a=AQU8qvvQqS1W:QU8x2&&&RX;!Bq!H+%%%QA;!5vaAq1u555555QA;!A$8&Aq!a%"888888QUBqH1Q3'''!Q<1!A#q>Rq!_,,,A;q>Ya!eA->'?	
Xa^#$qtQ(1a.-@&AAaD!qvv+CV	
1qHQN"#adA!Q,?%@1Q4a.R R R R QUAE?aee###QUBq!H'''Rr]x2...Rr]Bq!H%!Q77715>WQU^=wqu~=====!ad
AQrU8x3''AagJ(1c:J,JqQUw^_O___!9&&(B#5	6#5a"QXXq/#5	6-8 8 8 8 Q<yAq1111"1%a(C!AJqL3qs1u:a<,G#aPQcRSe*UV,,VY\]^_`]`ab]bYcdeYe,ehklmnolopqlqhrstht,twz{|}~{~w  AB  xB  -B  B  B  B%a(+s1Q3xzC!HQJ/FQqSRS/SVYZ[\]Z]V^_`V`/`cfghijgjcklmcm/mpstupvwxpx/xxxx!9	!Q'''CA!9	!$$$a!eQUQYblAE"a!eQU :+,
:*+
:,- 6D)DACA1:??D7?1-....tyyA##%**,-===tyyA##%,,./HQN3CCCCc4 AQ4==IqsAFmY/!Q;= = = =A;Aq!&&(HR,<<<<	tBF1IE>>	1Q3qRW-.	:RAJGI I I I::q!Ql#((*hq!n<<<c
A	 	#A	&B;;	3r!tAv;q=27rw"78)Dr1ajQS S S S771a=3qs1u:a<#ac!e*Q,#>QqS!#KKKK
$Q
'
*C<<	3rt9Q;qRW 56	BRAJOQ Q Q Q88Aq> C!HQJQqS!$;c!fQh$FFFF[ 
7s    m
c                      [        SS5      n [        X S:  5      [        S5      [        R                  0:X  d   e[	        U S:  U S:  5      R                  5       [        U R                  S5      :X  d   eg )NrH   rO   rM   rJ   )r   r,   r   r   r-   r   r
   r   rH   s    rD   
test_givenr      s`    CA1!e1quu---QA))+r!((A>>>rF   c                  <  ^^ [        SS5      [        SS5      smn TR                  U R                  p![        TU :  5      nUR                  X:  :X  d   e[        [	        TU :  U S:  5      5      nUR                  5       [        [	        [        US5      [        US5      5      [	        [        US5      [        US5      5      [	        [        US5      [        US5      5      5      :X  d   e[        UR                  5      S:X  d   e[        [        TU -   5      R                  R                  5      S:X  d   e[        SS5      m[        [        UU4S j5        [        TU -   5      R                  R                  [        S	S
SSSS5      S
-  :X  d   e[        TS:  5      R                  [        SSS5      :X  d   eTR                  R                  R                   [        [#        S	S5       Vs/ s H  n[%        TR                  U05      PM     sn6 :X  d   e[        TU :  5      R                   [        [#        S	S5       VVs/ s H@  n[#        S	S5        H,  oTU:  d  M
  [%        TR                  X@R                  U05      PM.     MB     snn6 :X  d   eg s  snf s  snnf )Nra   rO   yrI   rM   rf   ri   c                      > [        T T:  5      $ rA   r'   )rH   rV   s   rD   rZ   test_domains.<locals>.<lambda>       qQxrF   rS   rJ   rT   )r   r   r-   	conditionr   r   r   r
   lenelementsr/   r   r?   r_   r   r   r]   r\   r   )rK   ra   r   r   r   jrH   rV   s         @@rD   test_domainsr      sH   sA;CDAq88QXXqa!eA;;15!!!c!a%Q A<<>RBq!HbAh 7R1X
1a:r!QxAq*, , , ,qzz?ava!e}##,,-333CA
:'(!a%=##yAq!Q'BA'EEEEQ<yAq111188??9',Q{	3{!$!}
{	3$5 5 5 5 Q<	1a[,@ %1+QQ -MD!((Axx1K,L*5 -M ,@ !A A A A 
4,@s   ,!J
J*Jc                     [        S5      u  pp#[        SXU5      n[        U5      X-  X * S-   -  -   :X  d   e[        U5      U   U :X  d   e[        U5      U   SU -
  :X  d   e[	        U5      " U5      U [        [        U-  U-  5      -  U * S-   [        [        U-  U-  5      -  -   :X  d   e[        U5      " U5      U [        X-  5      -  U * S-   [        X#-  5      -  -   :X  d   e[        SU SS5      n[        S5      n[        U5      U :X  d   e[        [        U5      5      U SU -
  -  :X  d   e[        X-  U-   5      U[        U5      -  U-   :X  d   e[        [        X-  U-   5      5      [        US-  [        U5      -  5      :X  d   e[        U5      " U5      [        [        US:  US:  -  4SUSU -
  :*  4SUS:*  45      :X  d   e[        S[        SS5      5      n[        U5      [!        SS5      :X  d   e[        S[        SS	5      5      n[        U5      [!        S5      :X  d   e[#        [$        S
 5        [#        [$        S 5        UR&                  R)                  S5      S:X  d   e[        SS5      n [+        SSU 5      n[+        SSSU -  5      n[+        SSS	U -  5      n[-        Xg-   XF-   XG-   5      R                  5       S:X  d   e[-        USU-  -   U-   USU-  -   U-   USU-  -   U-   5      R                  5       [/        S5      [        SS5      -  :X  d   e[-        USU-  -   U-   USU-  -   U-   USU-  -   U-   US:  5      R                  5       [/        S5      * [        SS5      -  :X  d   eg )Nzp a b trC   rS   r   zrJ   rK   rV   rI   c                      [        SS5      $ )NrC   rt   r   rp   rF   rD   rZ    test_bernoulli.<locals>.<lambda>   s    yc2rF   c                      [        SS5      $ )NrC   g      r   rp   rF   rD   rZ   r      s    yd3rF   rM   rH   rT   	   i  re   iA  iqENi
  l   ) )r   r   r(   r,   r5   r   r   r6   r   r   r)   r7   r   r	   r   r9   r   r?   r_   r/   compute_expectationr!   r:   r   )r   rW   rX   r`   rH   r   rK   rV   s           rD   test_bernoullir      s   #JA!#qQAQ413BF####1:a=A1:a=AE!!!"1%a(AAEAI,>1"q&CPQTUPUXYPYNAZ,ZZZZ%a(+q3qu:~!a3qu:@U/UUUU#q!QAsAQ4199HQK Aq1uI---QS1W:1Q4!###HQS1W%&(1a4(1+3E*FFFFA;q>Ya!eA->'?!Q!a%ZSTVW[\V\R]^^^^#x1~&A!9	!Q'''#x1~&A!9	!$$$
:23
:34 88''*a///AAaAa1Aa1AaeQUAE*335:::a!A#gk1qs7Q;AaC!<EEGT
8B#667 7 7a!A#gk1qs7Q;AaC!QUCLLN O+HT:,FFG G GrF   c            
          [        SS5      n [        R                  n[        U 5      [	        US-  US-  US-  SU-  S-  SU-  S-  US.5      :X  d   eg )NrQ   rO   rI   rJ   rM   rm   )r   r   r   r0   r   )rQ   os     rD   test_cdfr      sd    CA	A	!A#!A#!A#!A#a%AaCEaHIJ J JrF   c                  (  ^^ [        S5      [        S5      smm[        S5      u  p[        [        TT5      5      [        R
                  :X  d   e[        [        TT5      5      X 4[        SS5      X4[        SS5      X4[        SS5      X4[        SS5      0:X  d   e[        [        T5      R                  5       5      U [        R
                  U[        R
                  0:X  d   e[        S[        SS5      5      n[        [        X 5      5      [        SS5      :X  d   e[        T5      R                  nUR                  5       [        [        TR                  U 5      [        TR                  U5      5      :X  d   e[!        ["        UU4S j5        g )	NCrQ   zH, TrS   rf   FrP   c                      > [        T T:  5      $ rA   r   )r   rQ   s   rD   rZ   test_coins.<locals>.<lambda>   r   rF   )r    r   r'   r
   r   r|   r,   r   r   r]   r^   r/   r   r   r   r   r?   r_   )HTr   r   r   rQ   s       @@rD   
test_coinsr      s9   9d3iDAq6?DAR1X;!&&   5A;QFHQNQFHQPQNFHQNQFHQN$< < < <
  "#1661aff'====S(1b/"ARX;(1b/)))q	A<<>R188QAHHaAAAA
:'(rF   c                  H    [        [        S 5        [        [        S 5        g )Nc                      [        SSS5      $ )NrX   皙?g      ?r!   rp   rF   rD   rZ   1test_binomial_verify_parameters.<locals>.<lambda>   s    xR4rF   c                      [        SSS5      $ )NrX   rI   rt   r   rp   rF   rD   rZ   r     s    xQ4rF   )r?   r_   rp   rF   rD   test_binomial_verify_parametersr      s    
:45
:45rF   c            	      h   [        S5      n S[        SS5      [        R                  [        SS5      S/nU  H  nU H  n[	        SX#5      n[        U5      X#-  :X  d   e[        U5      X#-  SU-
  -  :X  d   eUS:  af  SUs=:  a  S:  aY  O  OV[        U5      SSU-  -
  [        X#-  SU-
  -  5      -  :X  d   e[        U5      SSSU-  SU-
  -  -
  X#-  SU-
  -  -  -   :X  d   e[        US-   5       H6  n[        [        XE5      5      [        X%5      X5-  -  SU-
  X%-
  -  -  :X  a  M6   e   M     M     g )	NrM   r   rS   rf   rI   rH   rJ   rO   )r\   r   r   r|   r!   r(   r)   r+   r   r8   r'   r
   r   )nvalspvalsr   r   rH   rw   s         rD   test_binomial_numericr     s1   !HEAA:EAa#AQ413;;A;!#q1u+---1uQ{q1Q3wQS!a%[0A&AAAA{a1qsAE{?QS!a%[*I&IIII1q5\A{hqnQT&91q5AE:J&JJJJ "  rF   c                     [        SS[        R                  5      n [        U 5      " S5      [        S5      :X  d   e[	        U 5      [        S5      :X  d   e[        SS[        R                  5      n [        SSS	9n[        U 5      " U5      [        [        U[        R                  :  4[        R                  U[        S
S5      :*  4[        R                  U[        SS5      :*  4[        S5      U[        R                  :*  4[        S5      U[        SS5      :*  4[        S5      U[        SS5      :*  4[        S5      U[        R                  :*  45      :X  d   e[	        U 5      [        SS5      :X  d   eg )NrH   2   gffffff?   rh   rM   r   Tru   rS       rI      rJ      rf   )r!   r   r|   r7   r9   r   r   r   r	   r   r}   r   )rH   r   s     rD   test_binomial_quantiler     s3   b!&&!AA;t"%%%!9	"%%%a AsT"AA;q>YQY'7!&&!xPQSUBV9W	
Xa_$%!a166k':QqT1QSUWHXCX<Y	
1qHR$$%!a155j'9; ; ; ; !9	!Q'''rF   c                    ^ Sn [        SSS9n[        SX5      n[        S5      n[        [	        U5      5      X-  s=:X  a  [        [        US5      5      :X  d   e   e[        [        U5      5      X-  SU-
  -  s=:X  a  [        [        US5      5      :X  d   e   e[        [        U5      SSU-  -
  [        X-  SU-
  -  5      -  -
  5      S:X  d   e[        [        U5      S	SS
U-  SU-
  -  -
  X-  SU-
  -  -  -   -
  5      S:X  d   e[        U5      " U5      US-  [        S[        -  U-  5      -  SU-  U* S-   -  [        [        U-  5      -  -   U* S-   S-  -   :X  d   e[        U5      " U5      US-  [        SU-  5      -  SU-  U* S-   -  [        U5      -  -   U* S-   S-  -   :X  d   e[        S5      u  pE[        SXXES9n[        [	        U5      XU-  USU-
  -  -   -  -
  5      S:X  d   e[        S5      n [        SX5      m[!        ["        U4S j5        [%        T5      R&                  [)        [+        XSS5      5      :X  d   e[-        [%        T5      R&                  R/                  U S5      R1                  5       R3                  5       5      [4        R6                  [4        R8                  [5        S5      [5        S	5      [5        S5      1:X  d   e[-        [%        T5      R&                  R/                  U S5      R1                  5       R;                  5       5      SU-
  S-  SU-  SU-
  S	-  -  S
US-  -  SU-
  S-  -  SUS	-  -  SU-
  -  US-  1:X  d   e[=        SSS9n[	        TS:  5      R?                  [A        [C        XqU-  -  SU-
  U* U -   -  -  [E        X5      -  US:  Xp:*  -  US:  -  4S5      USU 45      5      (       d   eg )NrJ   r   Tru   rH   r`   rS   r   rI   rO   zH TrK   )succfailr   rC   c                      > [        T S:  5      $ )NrJ   r   )rC   s   rD   rZ   (test_binomial_symbolic.<locals>.<lambda>4  s    !a%rF   rf   rw   rx   rz   )#r   r!   r   r   r(   r2   r)   r3   r   r+   r   r8   r5   r   r   r6   r?   NotImplementedErrorr,   r]   r>   r<   r   r   r   r   r   r}   r   r   r   r   r   r   r   )	r   r   rH   r`   r   r   rK   rw   rC   s	           @rD   test_binomial_symbolicr     s   	Ad#AaAsAAaD>QS:HVAq\$::::::HQK ACQKJ8GAqM3JJJJJJ(1+QqS$qsAE{*; ;;<AAA8A;1AaCQK!#q1u+'F#FGHAMMM"1%a(AFSQ^,Ca!ePQrTUvFVY\]^ab]bYcFc,chigilmgmrsfs,ssss%a(+qAvAE
/BQUqbSTfEUX[\]X^E^/^cdbdghbhmnan/nnnn 5>DAa+AAaDAsQAY/01Q666 	AaA
 011:??g&:1A&FGGGGwqz##Aq)..05578VVQUUAaD!A$!%& & &wqz##Aq)..0779:!eaZ1a!eaZ1a4Q
!2AadFAENAqDIJ J Jc4 AQU8IqAvq1uQ//>a6A!eA (*,-q!9	67 7 7 7rF   c            	         [        [        S 5        [        [        S 5        [        [        S 5        [        SSSS5      (       d   e[        SS5      n [	        SS5      [
        R                  [	        S	S5      SS
/n[	        SS5      [
        R                  [	        S	S5      SS
/nU  HX  nU HO  nU HF  n[        SX4U5      n[        U5      [        US5      :X  d   e[        U5      [        US5      :X  a  MF   e   MQ     MZ     [        S5      u  p4n[        SX4U5      (       d   eSn[        SSS9u  pE[        SX4U5      n[        S5      n[        U5      R                  5       [        US5      R                  5       :X  d   e[        U5      R                  5       [        US5      R                  5       :X  d   e[        U5      [        US	5      :X  d   e[!        U5      " U5      [#        S[$        -  U-  5      ['        US-   U5      -  ['        XE5      -  S[#        [$        U-  5      -  ['        US-   US-   5      -  ['        XE5      -  -   ['        XES-   5      ['        XE5      -  -   :X  d   e[)        U5      " U5      [#        SU-  5      ['        US-   U5      -  ['        XE5      -  S[#        U5      -  ['        US-   US-   5      -  ['        XE5      -  -   ['        XES-   5      ['        XE5      -  -   :X  d   eg )Nc                      [        SSSS5      $ )NrX   r   rS   rJ   r"   rp   rF   rD   rZ   $test_beta_binomial.<locals>.<lambda>A  s    |CQ:rF   c                      [        SSSS5      $ )NrX   rJ   rN   r   rp   rF   rD   rZ   r   B  s    |CB:rF   c                      [        SSSS5      $ )NrX   rJ   rS   r   rp   rF   rD   rZ   r   C  s    |CAr:rF   rX   rJ   rS   rM   rf   rI   rP   rH   za b nra   za bTru   r`   )r?   r_   r"   r\   r   r   r|   r(   r2   r)   r3   r   r   expandr+   r4   r5   r   r   r   r6   )r   	alphavalsbetavalsr   rW   rX   rH   r`   s           rD   test_beta_binomialr   ?  s   
::;
::;
::;Q1%%%% !AJE!Q!QB?IAA2>HA aA.tva|+++{gam333    gGA!Q1%%%%	A54(DAS!"AsAQ4;;=F1aL//1111A;71a=#7#7#9999A;'!Q-'''"1%a(C!AJtAE1~,Ed1j,P	
3qs8DQA&	&tAz	1-248EN4:4M-N N N N%a(+s1Q3xQUA/FtAz/Q	
3q6$q1ua!e$	$T!Z	/0026qa%.a2K0L L L LrF   c                     [        SS5       GH;  n [        SU S-   5       GH#  n[        SU S-   5       GH  n[        SXU5      n[        [        XU45      u  pn[	        [        U5      R                  5       5      S:X  d   e[        U5      X!-  U -  :X  d   eU S:  a)  [        U5      X!U -  -  X-
  -  U -  X-
  -  U S-
  -  :X  d   eU S:  d  M  SUs=:  a  U :  d  M  O  M  X :  d  M  [        U5      [        U SU-  -
  [        U S-
  5      -  U SU-  -
  -  [        X!-  X-
  -  X-
  -  5      U S-
  -  -  5      :X  a  GM   e   GM&     GM>     g )NrS   rM   r   rH   rJ   )r\   r#   mapr   sumr,   r   r(   r)   r+   r   r   )Nmr   rH   s       rD   test_hypergeometric_numericr   b  sL   1a[q!a%A1a!e_"3a0gay1a71:,,./1444tquqy(((q5#A;!qS'15/!*;QU*CQU*KKKKq5QYQYY15#A;(A!GT!a%[3H!aPQc'3RQUQU 34a!e<4> +? ? ? ? % ! rF   c                  j   [        S5      u  pn[        SXU5      n[        U5      R                  n[	        US:  5      nU[        [        XU5      5      :X  d   eUR                  U S5      R                  5       [        [        SX5      5      :X  d   e[        UR                  U SUSUS05      R                  5       R                  5       5      [        R                  [        R                  1:X  d   e[        UR                  U SUSUS05      R                  5       R                  5       5      [        SS5      [        SS5      1:X  d   e[!        SSS	9nUR#                  [%        ['        U[)        X5      -  [)        X-
  U* U-   5      -  [)        X5      -  US:  4S
5      USU45      5      (       d   eg )NzN, m, nr   rJ   rM   rI   rS   rw   Trx   rz   r   )r   r#   r,   r]   r(   r>   r=   r   r   r   r   r   r}   r   r   r   r   r   r   r   r   )r   r   r   r   r   expecrw   s          rD   test_hypergeometric_symbolicr   q  s   i GA!sA!$A1:??Da!eHE75aA>????99Q?!W-G1-P%QQQQtyy!Q1a+,11388:;NNNtyy!Q1a+,113::<=(1a.RZ[\^_R`Aaaaac4 A>>Iq!'Q(??	!Q !*,./AY	89 9 9 9rF   c                     [        S5      n [        S5      n[        U 5      S:X  d   e[        U 5      S:X  d   e[	        U 5      S   [
        R                  :X  d   e[	        U 5      S   [
        R                  :X  d   e[        U 5      " U5      [        [        U-  5      S-  [        [        * U-  5      S-  -   :X  d   e[        U 5      " U5      [        U5      S-  [        U* 5      S-  -   :X  d   eg )NrH   r`   r   rS   rN   rJ   )r$   r   r(   r)   r,   r   r|   r5   r   r   r6   )rH   r`   s     rD   test_rademacherr     s    3AsAQ4199A;!1:b>QVV###1:a=AFF""""1%a(C!HQJaRT1,DDDD%a(+s1vzCGaK/GGGGrF   c                    ^ [        [        S 5        [        [        S 5        [        [        S 5        [        S5      m[        [        U4S j5        [        SSSS9n [        S	SSS9n[        S
5      n[	        SU 5      n[        U5      R                  [        R                  :X  d   e[        U5      R                  U :X  d   e[        U5      R                  [        [        U5      5      :X  d   e[        U5      R                  U5      [        SU -  [        US5      4SXS-
  -  -  X:  4S5      :X  d   e/ SQnU GH#  n[        UR!                  X5      5      [#        U5      s=:X  a   [%        UR!                  X5      S5      :X  d   e   e['        UR!                  X5      5      US-
  [#        U5      -   [#        U5      S-  -
  s=:X  a   [)        UR!                  X5      S5      :X  d   e   e[+        UR!                  X5      5      [-        UR!                  X5      S5      :X  d   e[/        UR!                  X5      5      [-        UR!                  X5      S5      :X  a  GM$   e   [1        [2        U-  5      S-  [5        [1        [2        U-  U-  5      X-  U-
  -  USU 45      R!                  U S5      R7                  5       -   [9        UR!                  U S5      5      " U5      :X  d   e[1        U5      S-  [5        [1        X!-  5      X-  U-
  -  USU 45      R!                  U S5      R7                  5       -   [;        UR!                  U S5      5      " U5      :X  d   eg )Nc                      [        SS5      $ )Nsolr%   rp   rF   rD   rZ   $test_ideal_soliton.<locals>.<lambda>  s    UC 8rF   c                      [        SS5      $ )Nr   gffffff*@r   rp   rF   rD   rZ   r     s    UD 9rF   c                      [        SS5      $ )Nr   r   r   rp   rF   rD   rZ   r     s    UA 6rF   fc                  L   > [        [        SS5      5      R                  T 5      $ )Nr   rP   )r,   r%   pmfr   s   rD   rZ   r     s    UB(? @ D DQ GrF   rw   Try   rv   ra   r`   r   rS   rz   )rM      r   d   i  rJ   rI   rf   rP   )r?   r_   r   r   r%   r,   lowr   r   highr]   r>   r   r   r
   r(   r   r   r2   r)   r3   r+   r4   r8   r   r   r   r   r5   r6   )rw   ra   r`   r   k_valsr   r   s         @rD   test_ideal_solitonr     s   
:89
:9:
:67A
:GHsD40AsD40AsA
ua
 C3<quu$$$3<!!!3< 55553<A)QqS"Q(OaEmQV=TV_"````#F! HQKL6#((1.!3LLLLLL'AEXa[+@8A;PQ>+QnU\]`]e]efg]klmUnnnnnn'7388A>1+EEEE'7388A>1+EEEE	  qs8B;S1QZq1Aq!9=BB1bINNPPTkloltltuvxzl{T|}~Tq6"9s3qs8QS1W-1ay9>>q"EJJLLPjknkskstuwykzP{|}P~~~~rF   c                    ^
 [        [        S 5        [        [        S 5        [        [        S 5        [        S5      m
[        [        U
4S j5        [        SSSS9n [        S	SS
9n[        SSS
9n[	        SXU5      n[        U5      R                  S:X  d   e[        U5      R                  U :X  d   e/ SQn/ SQn/ SQnU GH  nU GH	  nU H  n	[        UR                  XXX)05      5      [        UR                  XXX)05      S5      :X  d   e[        UR                  XXX)05      5      [        UR                  XXX)05      S5      :X  d   e[        UR                  XXX)05      5      [        UR                  XXX)05      S5      :X  d   e[        UR                  XXX)05      5      [        UR                  XXX)05      S5      :X  a  M   e   GM     GM     g )Nc                      [        SSSS5      $ )NrobSolr   皙?g{Gz?r&   rp   rF   rD   rZ   %test_robust_soliton.<locals>.<lambda>  s    hS$ GrF   c                      [        SSSS5      $ )Nr   r   g=
ףp=?r   r   rp   rF   rD   rZ   r     s    hD# FrF   c                      [        SSSS5      $ )Nr      333333?g{Gzr   rp   rF   rD   rZ   r     s    hC GrF   r   c                  P   > [        [        SSSS5      5      R                  T 5      $ )Nr   r   r   r   )r,   r&   r   r   s   rD   rZ   r     s!    hC(M N R RST UrF   rw   Tr   deltaru   rY   r   rS   )rP   r   r   )r   g?r   )g{Gz?gQ?g?rJ   rI   rf   )r?   r_   r   r   r&   r,   r   r   r(   r   r2   r)   r3   r+   r4   r8   )rw   r  rY   r   r   
delta_valsc_valsra   r   r   r   s             @rD   test_robust_solitonr    s   
:GH
:FG
:GHA
:UVsD40A7T*EsT"A8Qq1F6?!###6?1$$$F JFAaEa%;<=UV[`efTjHkmnAooooQ5Q,B CDPVP[P[]^chmn\rPsuvHwwwwQ5Q,B CDPVP[P[]^chmn\rPsuvHwwwwQ5Q,B CDPVP[P[]^chmn\rPsuvHwwww	   rF   c                     [        S[        R                  [        SS5      [        SS5      S.SS9n [	        SSS9n[        [        U 5      R                  5       5      [        R                  [        R                  [        S	5      [        SS5      [        S
5      [        SS5      0:X  d   e[        U S	:  5      [        R                  :X  d   e[        U 5      " U5      [        [        U[        R                  :  4[        R                  U[        R                  :*  4[        S	5      U[        S
S5      :*  4[        S
5      S45      :X  d   e[        U 5      R                  R                  5       [!        S Vs/ s H  n[#        U R$                  U5      PM     sn6 :X  d   eU R                  R                  R&                  [)        SS	S
5      :X  d   e[+        [,        S 5        [+        [,        S 5        [+        [,        S 5        [        SSS	S.5      n[/        U5      S:X  d   e[        US	:*  5      [        US	:  5      -   S:w  d   eg s  snf )Nr   rS   rf   rS   rJ   rI   Tcheckr   ru   rJ   rI   c                  t    [        S[        R                  [        R                  [        R                  S.SS9$ )Nr   r  Tr  )r.   r   r|   rp   rF   rD   rZ   test_FiniteRV.<locals>.<lambda>  s!    xAFFqvv-NVZ[rF   c                  l    [        S[        R                  [        SS5      [        R                  S.SS9$ )Nr   rN   rJ   r  Tr  )r.   r   r|   r   r   rp   rF   rD   rZ   r
    s&    xHROPQPUPU-V^bcrF   c                      [        S[        R                  [        SS5      [        R                  [        SS5      [        SS5      [        SS5      S.SS	9$ )
Nr   rI   rJ   rN   rf   rm   Tr  )r.   r   r   r   r}   rp   rF   rD   rZ   r
    sB    x8Aq>affB?xA8B?.DKO QrF   rH   )rS   rJ   rM   )r.   r   r|   r   r   r]   r,   r^   r   r'   r7   r   r	   r/   r   r   r   r
   r   r   r   r?   r_   r(   )r   r   r   rH   s       rD   test_FiniteRVr    s   !&&Xa^AGtTAsT"A
  "#qvvqtXa^QqTS[\]_`Sa'bbbbQ!V9A;q>YQY'7!%%aff9M	
1qHQN"#QqT4L2 2 2 2 !9&&(B#,	-9a"QXXq/9	--/ / / / 88??)Aq!"4444
:[\
:cd
: Q R
 	!l#AQ4199Q!V9qQx1$$$ 
.s   7 I
c                  4   SSK Jn   [        SU 5      n[        U5      nU" S5      SU -
  :X  d   eU" [        R
                  5      SU -
  :X  d   eU" S5      S:X  d   eSU;   d   eSU;  d   eU" [        R
                  5      U[        R
                     :X  d   eg )Nr   )r   ra   rS   rM   )	sympy.abcr   r   r,   r   r}   )r   ra   r   s      rD   test_density_callr    s    #qA
AQ41q5==QVV9AQ41996M6A::QVV9!&&	!!!rF   c                    ^ ^ SSK Jm  [        S5      m T R                  [        R
                  5      [        R                  L d   eT R                  T5      R                  TS05      R                  5       [        SS5      :X  d   eT R                  T5      R                  TS05      R                  5       S:X  d   eT R                  T5      R                  TS05      R                  5       S:X  d   eT R                  T5      R                  T[        SS5      05      R                  5       S:X  d   e[        [        U 4S j5        [        [        U U4S	 j5        g )
Nr   )ra   rO   rS   rT   rN   rI   c                  <   > T R                  [        SS/5      5      $ )Nr   )r   r   r   s   rD   rZ   &test_DieDistribution.<locals>.<lambda>  s    quuVQF^4rF   c                  2   > T R                  TS-  S-
  5      $ )NrJ   rS   )r   rH   ra   s   rD   rZ   r    s    quuQTAXrF   )r  ra   r;   r   r   r|   r}   r   r   r   r?   r_   r  s   @@rD   test_DieDistributionr    s   A55=AFF"""558==!Q %%'8Aq>999558==!Q %%'1,,,558==!R!&&(A---558==!Xa^,-224999
:45
:./rF   c                  h    [        SS5      n [        U 5      nUR                  [        S5      :X  d   eg )NrH   rO   )r   r/   r,   r;   )rH   spaces     rD   test_FinitePSpacer    s-    CA1IE==OA....rF   c            	      4   [        S[        SS5      5      n [        SS5      n[        S5      u  p#[	        [        X5      5      n[        X:  5      nU[        [        SS5      [        US5      4S5      [        [        SS5      [        US5      4S5      -   :X  d   eU[        [        SS5      US:  4S5      [        [        R                  US	:  4S5      -   [        [        SS5      US:  4S5      -   [        [        R                  US:  4S5      -   :X  d   eg )
NrC   rS   rf   rQ   zb, nrz   rI   r   rJ   )r   r   r   r   r'   r
   r(   r   r   r|   r   )rC   rQ   rX   r   rK   rV   s         rD   test_symbolic_conditionsr    s   #x1~&ACA6?DA	"Q(A	!%Ax1~r!Qx()4x1~r!Qx()455 5 5 x1~q1u%y1Iqvvq1uoy4YYx1~q1u%y124=quua!eni4XYY Y YrF   N)lsympy.concrete.summationsr   sympy.core.containersr   r   sympy.core.functionr   sympy.core.numbersr   r   r	   sympy.core.relationalr
   sympy.core.singletonr   sympy.core.symbolr   r   r   sympy.core.sympifyr   (sympy.functions.combinatorial.factorialsr   %sympy.functions.combinatorial.numbersr   &sympy.functions.elementary.exponentialr   (sympy.functions.elementary.miscellaneousr   $sympy.functions.elementary.piecewiser   (sympy.functions.elementary.trigonometricr   &sympy.functions.special.beta_functionsr   sympy.logic.boolalgr   r   sympy.polys.polytoolsr   sympy.sets.setsr   sympy.simplify.simplifyr   sympy.matricesr   sympy.statsr   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   sympy.stats.frv_typesr;   r<   r=   sympy.stats.rvr>   sympy.testing.pytestr?   rE   rb   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  rp   rF   rD   <module>r5     s
   ) / ( 1 1 $ " 6 6 & = : 6 9 : 8 7 ) ( % , !^ ^ ^ ^ ^ ^ ^ ^
  " ',
I<[Gz?A4$GLJ)"6K
(7@!LF?9	H4x2%0
"	0/
YrF   