
    sgO                     B   d dl mZ d dlmZmZ d dlmZ d dlmZm	Z	m
Z
 d dlmZ d dlmZ d dlmZ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$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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZL d dlMmNZNmOZOmPZP d dlQmRZR d dlSmTZT d ZUd ZVd ZWd ZXd ZYd ZZd Z[d  Z\d! Z]d" Z^d# Z_d$ Z`d% Zad& Zbd' Zcd( Zdd) Zed* Zfd+ Zgd, Zhd- Zid. Zjd/ Zky0)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                     t        | |      t        t        | |            t        |      z  k(  sJ t        | |      t        ||       t        |       z  t        |      z  k(  sJ y N)r'   r   )ABs     S/var/www/html/venv/lib/python3.12/site-packages/sympy/stats/tests/test_finite_rv.py	BayesTestrE       sT    Q7aAq	lQqT))))Q7a1g!nqt++++    c                     t        d      \  } t        dg      }t        |      z   z   dz  k(  sJ t        t	        |      dz  dz  z   dz  z   dz  dz  dz  z   dz  z   dz  z
  z
        dk(  sJ t        t        |            t        t        |            cxk(  r(t        t        |            cxk(  rt        d      k(  sJ  J t        dt        dd	            }t        |      t        d
      k(  sJ t	        |      t        d      k(  sJ t        |      t        dd      k(  sJ t        dd	      D ]i  }t        t        ||            t        d      k(  sJ t        ||k        t        |dz         dz  k(  sJ t        ||k\        t        d	|z
        dz  k(  riJ  t        t        t        dd            j                               t        t        t        dt        dd                  j                               k(  sJ  t        |      |       t!        t"        z  | z        dz  t!        t"        z  | z        dz  z   t!        t"        z  | z        dz  z   k(  sJ  t%        |      |       t!        | z        dz  t!        | z        dz  z   t!        | z        dz  z   k(  sJ t'        t(        fd       y )Nza b c tX      r   z1/3Y   z-1/2z33/4z1/10   
   DU      c            	      (    t        d   g      S )NZ)r   )abcs   rD   <lambda>z&test_discreteuniform.<locals>.<lambda>A   s    sQ1aA4FG rF   )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_discreteuniformra   %   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\ (Aq{ai'''ayAa!eHRK'''a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                     t        dd      t        dd      t        dd      }}} t        d      \  }}}}t        |       dt        j                  z   k(  sJ t        |       t        dd      k(  sJ t        | |z         d	k(  sJ t        | | z         d	k(  sJ t        || z  |z         |t        |       z  |z   k(  sJ t        | |z         t        |       t        |      z   cxk(  rt        | |z   d
      k(  sJ  J t        | | z         dt        |       z  cxk(  rt        | | z   d
      k(  sJ  J t        | d      dk(  sJ t        d| z  d      dt        | d      z  k(  sJ t        | |      t        j                  u sJ t        | | |z         t        |       k(  sJ t        t        t        | t        j                  z        d            d   t        j                  k(  sJ t        | |      dk(  sJ t        | |      t        ||       k(  sJ t        | |z   d      t!        | |z         k(  sJ t        | |z   d      t#        | |z         k(  sJ t        | d      dk(  sJ t%        | dkD        t        j                  k(  sJ t%        d
| z  dkD        t        j                  k(  sJ t%        | |kD        t        dd      k(  sJ t%        t        | |            t%        t        | d            k(  sJ t        | | dkD        dcxk(  rt'        | dd| dkD        k(  sJ  J t        | |dkD        t        |       cxk(  rt'        | dd|dkD        k(  sJ  J t        | |z   t        | |            t        d
| z        k(  sJ t'        | d      dk(  sJ t'        d| z  d
      dt'        | d
      z  k(  sJ  t)        |       |      t+        t,        |dkD  |dk  z  ft        j.                  |t        dd      k  ft        d
      |t        dd      k  ft        d      |t        j                  k  ft        d      |t        d
d      k  ft        d      |t        dd      k  ft        d      |dk  f      k(  sJ t%        | dkD  | dkD        t        j.                  u sJ t%        | |kD  t        |d            t        j                  u sJ t%        t        | |z   d            t        dd      k(  sJ t%        t        | |z   d      t        | d            t        dd      k(  sJ t        | |z         t        ||z         cxk(  rt        | | z         k7  sJ  J t        d
| z  ||z  z         }|t        d         t        dd      k(  r(|t        d         t        dd      k(  rt        d      |vsJ t1        |       j2                  j5                         t7        dD cg c]  }t        | j8                  |       c} k(  sJ t;        | dkD        j<                  t?        ddd      k(  sJ  tA        |       |      tC        dtD        z  |z        dz  tC        dtD        z  |z        dz  z   tC        dtD        z  |z        dz  z   tC        dtD        z  |z        dz  z   tC        d
tD        z  |z        dz  z   tC        tD        |z        dz  z   k(  sJ  tG        |       |      tC        d|z        dz  tC        d|z        dz  z   tC        d|z        dz  z   tC        d|z        dz  z   tC        d
|z        dz  z   tC        |      dz  z   k(  sJ tI        |       t?        dd      k(  sJ t        dd	      }	tI        |	      t?        d      k(  sJ tK        | dkD  | |z   dk         tK        t        | |z
  |      ||kD         tK        | dkD  | d
kD         tM        tN        d        tM        tN        d        tM        tN        d        t        dd      \  }
}t        d|
      }	t        |	      jP                  }|tS        tU        |
            k(  sJ t=        |jW                  |
d      jY                         j[                               h dk(  sJ t=        |jW                  |
d      jY                         j]                               t        dd      hk(  sJ t_        d d!      }t        |	      ja                  tc        t+        ||
z  ||
k  fd"      |d|
f            sJ t        |	      jW                  |
d      jY                         t        dd      k(  sJ t_        d#      } te        |	      |      }|ja                  tc        t+        d|
z  |dk\  ||
k  z  fd"      |d|f            sJ |jW                  |
d|d
i      jY                         t        dd      k(  sJ t_        d$      } tA        |	      |      }|ja                  tc        t+        tC        |tD        z  |z        |
z  |dk\  ||
k  z  fd"      |d|
f            sJ |jW                  |
d      jY                         tC        dtD        z  |z        dz  tC        d
tD        z  |z        dz  z   tC        tD        |z        dz  z   k(  sJ  tG        |	      |      }|ja                  tc        t+        tC        ||z        |
z  |dk\  ||
k  z  fd"      |d|
f            sJ |jW                  |
d      jY                         tC        d|z        dz  tC        d
|z        dz  z   tC        |      dz  z   k(  sJ y c c}w )%NrH   rO   rK   rV   za b t prI   #      rT   rJ      r   rS   @   TrM      $      l   i     i:  rS   rJ   rI   re   rM   rO   rQ   c                      t        dd      S )NrH   rN   r    rF   rD   rZ   ztest_dice.<locals>.<lambda>   s    s3| rF   c                      t        dd      S )NrH   r   rn   ro   rF   rD   rZ   ztest_dice.<locals>.<lambda>   s    s3{ rF   c                      t        dd      S )NrH         ?rn   ro   rF   rD   rZ   ztest_dice.<locals>.<lambda>   s    s3} rF   zn, kpositive>   rS   rJ   rI   re   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   nru   densry   cumufcfmgfs                    rD   	test_dicer   C   s
   #qk3sA;C!qA#JAq!QQ41qvv:A;(2r****QU8q==QU8q==QqS1W:1Q4!###AE?hqkHQK7L71q5!;LLLLLLAE?a(1+oBQ1BBBBBB1a=A1Q3?bA....aqvv%%%aQ8A;...2c!ADD&k1%&t,666q!!!!q!Aq 11111q5!Q///1q5!Q///1a=AQU8qvvQqS1W:QU8x2&&&R1X;!Bq!H+%%%QA;!5vaAq1u555555QA;!A$8&Aq!a%"888888QUBq!H1Q3'''!Q<1!A#q>Rq!_,,,8A;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###QUBq!H'''RAr]x2...RAr]Bq!H%!Q7771q5>WQU^=wq1u~=====!ad
AQrU8x3''AagJ(1c:J,JqQUw^_O___!9&&(B#5	6a"QXXq/	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!eQUQYbQlAE"a!eQU :+,
:*+
:,- 6D)DAqCA1:??D7?1-....tyyA##%**,-===tyyA##%,,./HQN3CCCCc4 AQ4==IqsAFmY/!Q;= = =A;Aq!&&(HR,<<<<	tBCF1IE>>	1Q3qR1W-.	:RAJGI I I::q!Ql#((*hq!n<<<c
A	#	 	#A	&B;;	3r!tAv;q=27rQw"78)Dr1ajQS S S771a=3qs1u:a<#ac!e*Q,#>QqS!#KKKK
'
$Q
'
*C<<	3r!t9Q;qR1W 56	BRAJOQ Q Q88Aq> C!HQJQqS!$;c!fQh$FFFF[ 
7s   m
c                      t        dd      } t        | | dkD        t        d      t        j                  ik(  sJ t	        | dkD  | dkD        j                         t        | j                  d      k(  sJ y )NrH   rO   rM   rJ   )r   r,   r   r}   r-   r   r
   r   rH   s    rD   
test_givenr      sb    CA1a!e1quu---QA))+r!((A>>>rF   c                     t        dd      t        dd      c} j                  | j                  }}t        | kD        }|j                  ||kD  k(  sJ t        t	        | kD  | dkD              }|j                         t        t	        t        |d      t        |d            t	        t        |d      t        |d            t	        t        |d      t        |d                  k(  sJ t        |j                        dk(  sJ t        t        | z         j                  j                        dk(  sJ t        dd      t        t        fd       t        | z         j                  j                  t        d	d
dddd      d
z  k(  sJ t        dkD        j                  t        ddd      k(  sJ j                  j                  j                   t        t#        d	d      D cg c]  }t%        j                  |i       c} k(  sJ t        | kD        j                   t        t#        d	d      D cg c];  }t#        d	d      D ]*  }||kD  r#t%        j                  || j                  |i      , = c}} k(  sJ y c c}w c c}}w )Nr`   rO   yrI   rM   re   rh   c                       t         kD        S rA   r'   )rH   rV   s   rD   rZ   ztest_domains.<locals>.<lambda>       qQx rF   rS   rJ   rT   )r   r   r-   	conditionr   r   r   r
   lenelementsr/   r~   r?   r^   r   r   r\   r[   r   )rK   r`   r   r   r   jrH   rV   s         @@rD   test_domainsr      sK   sA;CDAq88QXXqAa!eA;;1q5!!!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+,@%&Q -1!((Aqxx1K,L ,@,L ,@ !A A A A 
4,@s   'J
8A Jc                     t        d      \  } }}}t        d| ||      }t        |      || z  ||  dz   z  z   k(  sJ t        |      |   | k(  sJ t        |      |   d| z
  k(  sJ  t	        |      |      | t        t        |z  |z        z  |  dz   t        t        |z  |z        z  z   k(  sJ  t        |      |      | t        ||z        z  |  dz   t        ||z        z  z   k(  sJ t        d| dd      }t        d      }t        |      | k(  sJ t        t        |            | d| z
  z  k(  sJ t        ||z  |z         |t        |      z  |z   k(  sJ t        t        ||z  |z               t        |dz  t        |      z        k(  sJ  t        |      |      t        t        |dkD  |dk  z  fd|d| z
  k  fd|dk  f      k(  sJ t        dt        dd            }t        |      t!        dd      k(  sJ t        dt        dd	            }t        |      t!        d      k(  sJ t#        t$        d
        t#        t$        d        |j&                  j)                  d      dk(  sJ t        dd      } t+        dd|       }t+        ddd| z        }t+        ddd	| z        }t-        ||z   ||z   ||z         j                         dk(  sJ t-        |d|z  z   |z   |d|z  z   |z   |d|z  z   |z         j                         t/        d      t        dd      z  k(  sJ t-        |d|z  z   |z   |d|z  z   |z   |d|z  z   |z   |dk        j                         t/        d       t        dd      z  k(  sJ y )Nzp a b trC   rS   r   zrJ   rK   rV   rI   c                      t        dd      S )NrC   rr   r   ro   rF   rD   rZ   z test_bernoulli.<locals>.<lambda>   s    yc2 rF   c                      t        dd      S )NrC   g      r   ro   rF   rD   rZ   z test_bernoulli.<locals>.<lambda>   s    yd3 rF   rM   rH   rT   	   i  rd   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   #JAq!Q#q!QAQ41Q3QBF####1:a=A1:a=AE!!!%"1%a(AAEAI,>1"q&CPQTUPUXYPYNAZ,ZZZZ(%a(+q3q1u:~!a3qSTu:@U/UUUU#q!QAsAQ4199HQK Aq1uI---QqS1W:1Q4!###HQqS1W%&(1a4(1+3E*FFFF8A;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a!eQUAE*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            
          t        dd      } t        j                  }t        |       t	        |dz  |dz  |dz  d|z  dz  d|z  dz  |d      k(  sJ y )NrQ   rO   rI   rJ   rM   rl   )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                  (   t        d      t        d      ct        d      \  } }t        t                    t        j
                  k(  sJ t        t                    | | ft        dd      | |ft        dd      || ft        dd      ||ft        dd      ik(  sJ t        t              j                               | t        j
                  |t        j
                  ik(  sJ t        dt        dd            }t        t        ||             t        dd      k(  sJ t              j                  }|j                         t        t        j                  |       t        j                  |            k(  sJ t!        t"        fd       y )	NCrQ   zH, TrS   re   FrP   c                       t         kD        S rA   r   )r   rQ   s   rD   rZ   ztest_coins.<locals>.<lambda>   r   rF   )r    r   r'   r
   r   rz   r,   r   r   r\   r]   r/   r~   r   r   r   r?   r^   )HTr   r   r   rQ   s       @@rD   
test_coinsr      sE   9d3iDAq6?DAqR1X;!&&   5A;QFHQNQFHQPQNFHQNQFHQN$< < < <
  "#1661aff'====S(1b/"AR1X;(1b/)))q	A<<>R188QAHHaAAAA
:'(rF   c                  H    t        t        d        t        t        d        y )Nc                      t        ddd      S )NrX   皙?g      ?r!   ro   rF   rD   rZ   z1test_binomial_verify_parameters.<locals>.<lambda>   s    xR4 rF   c                      t        ddd      S )NrX   rI   rr   r   ro   rF   rD   rZ   z1test_binomial_verify_parameters.<locals>.<lambda>  s    xQ4 rF   )r?   r^   ro   rF   rD   test_binomial_verify_parametersr      s    
:45
:45rF   c            	      ^   t        d      } dt        dd      t        j                  t        dd      dg}| D ]  }|D ]  }t	        d||      }t        |      ||z  k(  sJ t        |      ||z  d|z
  z  k(  sJ |dkD  rdd|cxk  rdk  rYn nVt        |      dd|z  z
  t        ||z  d|z
  z        z  k(  sJ t        |      ddd|z  d|z
  z  z
  ||z  d|z
  z  z  z   k(  sJ t        |dz         D ]8  }t        t        ||            t        ||      ||z  z  d|z
  ||z
  z  z  k(  r8J    y )	NrM   r   rS   re   rI   rH   rJ   rO   )r[   r   r   rz   r!   r(   r)   r+   r   r8   r'   r
   r   )nvalspvalsr   r   rH   ru   s         rD   test_binomial_numericr     sX   !HEAA:E 	K 	KAa#AQ41Q3;;A;!A#q1u+---1uQ{q1Q3wQqS!a%[0A&AAAA{a1qsAE{?QqS!a%[*I&IIII1q5\ KAq{hq!nQT&91q5AE:J&JJJJK	K	KrF   c                     t        ddt        j                        }  t        |       d      t        d      k(  sJ t	        |       t        d      k(  sJ t        ddt        j                        } t        dd	      } t        |       |      t        t        |t        j                  kD  ft        j                  |t        d
d      k  ft        j                  |t        dd      k  ft        d      |t        j                  k  ft        d      |t        dd      k  ft        d      |t        dd      k  ft        d      |t        j                  k  f      k(  sJ t	        |       t        dd      k(  sJ y )NrH   2   gffffff?   rg   rM   r   Trs   rS       rI      rJ      re   )r!   r   rz   r7   r9   r   r   r   r	   r}   r{   r   )rH   r   s     rD   test_binomial_quantiler     s7   b!&&!A8A;t"%%%!9	"%%%a AsT"A8A;q>YQY'7!&&!xPQSUBV9W	
Xa_$%!a166k':QqT1QSUWHXCX<Y	
1qHR$$%!a155j'9; ; ; ; !9	!Q'''rF   c                     d} t        dd      }t        d| |      }t        d      }t        t	        |            | |z  cxk(  rt        t        |d            k(  sJ  J t        t        |            | |z  d|z
  z  cxk(  rt        t        |d            k(  sJ  J t        t        |      dd|z  z
  t        | |z  d|z
  z        z  z
        dk(  sJ t        t        |      d	dd
|z  d|z
  z  z
  | |z  d|z
  z  z  z   z
        dk(  sJ  t        |      |      |dz  t        dt        z  |z        z  d|z  | dz   z  t        t        |z        z  z   | dz   dz  z   k(  sJ  t        |      |      |dz  t        d|z        z  d|z  | dz   z  t        |      z  z   | dz   dz  z   k(  sJ t        d      \  }}t        d| |||      }t        t	        |      | ||z  |d|z
  z  z   z  z
        dk(  sJ t        d      } t        d| |      t!        t"        fd       t%              j&                  t)        t+        | |dd            k(  sJ t-        t%              j&                  j/                  | d      j1                         j3                               t4        j6                  t4        j8                  t5        d      t5        d	      t5        d      hk(  sJ t-        t%              j&                  j/                  | d      j1                         j;                               d|z
  dz  d|z  d|z
  d	z  z  d
|dz  z  d|z
  dz  z  d|d	z  z  d|z
  z  |dz  hk(  sJ t=        dd      }t	        dkD        j?                  tA        tC        |||z  z  d|z
  | | z   z  z  tE        | |      z  |dk\  || k  z  |dkD  z  fd      |d| f            sJ y )NrJ   r   Trs   rH   r_   rS   r   rI   rO   zH TrK   )succfailr   rC   c                       t         dkD        S )NrJ   r   )rC   s   rD   rZ   z(test_binomial_symbolic.<locals>.<lambda>4  s    !a% rF   re   ru   rv   rx   )#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   ru   rC   s	           @rD   test_binomial_symbolicr     s   	Ad#AaAsAAaD>QqS:HVAq\$::::::HQK AaCQKJ8GAqM3JJJJJJ(1+QqS$qsAE{*; ;;<AAA8A;1AaCQK!A#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>DAqa+AAaDAqsQAY/01Q666 	AaA
 011:??g&:1a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IqAvq1uQ//A>a6A!eA (*,-q!9	67 7 7rF   c            	         t        t        d        t        t        d        t        t        d        t        dddd      sJ t        dd      } t	        dd      t
        j                  t	        d	d      dd
g}t	        dd      t
        j                  t	        d	d      dd
g}| D ]R  }|D ]K  }|D ]D  }t        d|||      }t        |      t        |d      k(  sJ t        |      t        |d      k(  rDJ  M T t        d      \  }}}t        d|||      sJ d}t        dd      \  }}t        d|||      }t        d      }t        |      j                         t        |d      j                         k(  sJ t        |      j                         t        |d      j                         k(  sJ t        |      t        |d	      k(  sJ  t!        |      |      t#        dt$        z  |z        t'        |dz   |      z  t'        ||      z  dt#        t$        |z        z  t'        |dz   |dz         z  t'        ||      z  z   t'        ||dz         t'        ||      z  z   k(  sJ  t)        |      |      t#        d|z        t'        |dz   |      z  t'        ||      z  dt#        |      z  t'        |dz   |dz         z  t'        ||      z  z   t'        ||dz         t'        ||      z  z   k(  sJ y )Nc                      t        dddd      S )NrX   r   rS   rJ   r"   ro   rF   rD   rZ   z$test_beta_binomial.<locals>.<lambda>A  s    |CQ: rF   c                      t        dddd      S )NrX   rJ   rN   r   ro   rF   rD   rZ   z$test_beta_binomial.<locals>.<lambda>B  s    |CB: rF   c                      t        dddd      S )NrX   rJ   rS   r   ro   rF   rD   rZ   z$test_beta_binomial.<locals>.<lambda>C  s    |CAr: rF   rX   rJ   rS   rM   re   rI   rP   rH   za b nr`   za bTrs   r_   )r?   r^   r"   r[   r   r   rz   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 4 	4A 4 aA.tva|+++{gam3334	44 gGAq!Q1%%%	A54(DAqS!Q"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~,Ed1aj,P	
3qs8DQA&	&tAqz	1-248AEN41:4M-N N N N(%a(+s1Q3xQUA/FtAqz/Q	
3q6$q1ua!e$	$T!QZ	/0026q!a%.a2K0L L L LrF   c                     t        dd      D ]4  } t        d| dz         D ]  }t        d| dz         D ]  }t        d| ||      }t        t        | ||f      \  } }}t	        t        |      j                               dk(  sJ t        |      ||z  | z  k(  sJ | dkD  r+t        |      ||| z  z  | |z
  z  | z  | |z
  z  | dz
  z  k(  sJ | dkD  sd|cxk  r| k  sn || k  st        |      t        | d|z  z
  t        | dz
        z  | d|z  z
  z  t        ||z  | |z
  z  | |z
  z        | dz
  z  z        k(  r	J  ! 7 y )NrS   rM   r   rH   rJ   )r[   r#   mapr   sumr,   r   r(   r)   r+   r   r   )Nmr   rH   s       rD   test_hypergeometric_numericr   b  so   1a[ ?q!a% 	?A1a!e_ 
?"31a0g1ay11a71:,,./1444tq1uqy(((q5#A;!QqS'1q5/!*;QU*CQU*KKKKq5QYQY1q5#A;(A!GT!a%[3H!aPQc'3R!QUQU 34a!e<4> +? ? ? ?
?	??rF   c                  l   t        d      \  } }}t        d| ||      }t        |      j                  }t	        |dkD        }|t        t        | ||            k(  sJ |j                  | d      j                         t        t        d||            k(  sJ t        |j                  | d|d|di      j                         j                               t        j                  t        j                  hk(  sJ t        |j                  | d|d|di      j                         j                               t        dd      t        dd      hk(  sJ t!        dd	      }|j#                  t%        t'        |t)        ||      z  t)        | |z
  | |z         z  t)        | |      z  |dkD  fd
      |d|f            sJ y )NzN, m, nr   rJ   rM   rI   rS   ru   Trv   rx   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   expecru   s          rD   test_hypergeometric_symbolicr   q  s   i GAq!sAq!$A1:??Da!eHE75aA>????99Q?!W-G1a-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Q(??	!QQ !*,./AY	89 9 9rF   c                     t        d      } t        d      }t        |       dk(  sJ t        |       dk(  sJ t	        |       d   t
        j                  k(  sJ t	        |       d   t
        j                  k(  sJ  t        |       |      t        t        |z        dz  t        t         |z        dz  z   k(  sJ  t        |       |      t        |      dz  t        |       dz  z   k(  sJ y )NrH   r_   r   rS   rN   rJ   )r$   r   r(   r)   r,   r   rz   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                     t        t        d        t        t        d        t        t        d        t        d      t        t        fd       t        ddd      } t        d	dd      }t        d
      }t	        d|       }t        |      j                  t        j                  k(  sJ t        |      j                  | k(  sJ t        |      j                  t        t        |            k(  sJ t        |      j                  |      t        d| z  t        |d      fd||dz
  z  z  | |k\  fd      k(  sJ g d}|D ]$  }t        |j!                  | |            t#        |      cxk(  r t%        |j!                  | |      d      k(  sJ  J t'        |j!                  | |            |dz
  t#        |      z   t#        |      dz  z
  cxk(  r t)        |j!                  | |      d      k(  sJ  J t+        |j!                  | |            t-        |j!                  | |      d      k(  sJ t/        |j!                  | |            t-        |j!                  | |      d      k(  r%J  t1        t2        |z        dz  t5        t1        t2        |z  |z        ||z  |z
  z  |d| f      j!                  | d      j7                         z    t9        |j!                  | d            |      k(  sJ t1        |      dz  t5        t1        ||z        ||z  |z
  z  |d| f      j!                  | d      j7                         z    t;        |j!                  | d            |      k(  sJ y )Nc                      t        dd      S )Nsolr%   ro   rF   rD   rZ   z$test_ideal_soliton.<locals>.<lambda>  s    UC 8 rF   c                      t        dd      S )Nr   gffffff*@r   ro   rF   rD   rZ   z$test_ideal_soliton.<locals>.<lambda>  s    UD 9 rF   c                      t        dd      S )Nr   r   r   ro   rF   rD   rZ   z$test_ideal_soliton.<locals>.<lambda>  s    UA 6 rF   fc                  L    t        t        dd            j                         S )Nr   rP   )r,   r%   pmfr   s   rD   rZ   z$test_ideal_soliton.<locals>.<lambda>  s    UB(? @ D DQ G rF   ru   Trw   rt   r`   r_   r   rS   rx   )rM      r   d   i  rJ   rI   re   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   )ru   r`   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AEmQRSV=TV_"````#F F!Q HQKL6#((1a.!3LLLLLLA'AEXa[+@8A;PQ>+QnU\]`]e]efgij]klmUnnnnnnA'7388Aq>1+EEEEA'7388Aq>1+EEEE	F qs8B;S1QZ1q1Aq!9=BB1bINNPPT|Tkloltltuvxzl{T|}~Tq6"9s3qs8QqS1W-1ay9>>q"EJJLLP{PjknkskstuwykzP{|}P~~~~rF   c                    
 t        t        d        t        t        d        t        t        d        t        d      
t        t        
fd       t        ddd      } t        d	d
      }t        dd
      }t	        d| ||      }t        |      j                  dk(  sJ t        |      j                  | k(  sJ g d}g d}g d}|D ]%  }|D ]  }|D ]  }	t        |j                  | |||||	i            t        |j                  | |||||	i      d      k(  sJ t        |j                  | |||||	i            t        |j                  | |||||	i      d      k(  sJ t        |j                  | |||||	i            t        |j                  | |||||	i      d      k(  sJ t        |j                  | |||||	i            t        |j                  | |||||	i      d      k(  rJ   ( y )Nc                      t        dddd      S )NrobSolr   皙?g{Gz?r&   ro   rF   rD   rZ   z%test_robust_soliton.<locals>.<lambda>  s    hS$ G rF   c                      t        dddd      S )Nr   r   g=
ףp=?r   r   ro   rF   rD   rZ   z%test_robust_soliton.<locals>.<lambda>  s    hD# F rF   c                      t        dddd      S )Nr      333333?g{Gzr   ro   rF   rD   rZ   z%test_robust_soliton.<locals>.<lambda>  s    hC G rF   r   c                  P    t        t        dddd            j                         S )Nr   r   r   r   )r,   r&   r   r   s   rD   rZ   z%test_robust_soliton.<locals>.<lambda>  s#    hC(M N R RST U rF   ru   Tr   deltars   rY   r   rS   )rP   r   r   )r   g?r   )g{Gz?gQ?g?rJ   rI   re   )r?   r^   r   r   r&   r,   r   r   r(   r   r2   r)   r3   r+   r4   r8   )ru   r   rY   r   r   
delta_valsc_valsr`   r   r   r   s             @rD   test_robust_solitonr     s   
:GH
:FG
:GHA
:UVsD40A7T*EsT"A8Qq1F6?!###6?1$$$F JF x 	xA xaE1a%;<=UVXY[`bcefhiTjHkmnAooooQ5!Q,B CDPVP[P[]^`achjkmnpq\rPsuvHwwwwQ5!Q,B CDPVP[P[]^`achjkmnpq\rPsuvHwwwwQ5!Q,B CDPVP[P[]^`achjkmnpq\rPsuvHwwww	x	xxrF   c                     t        dt        j                  t        dd      t        dd      dd      } t	        dd      }t        t        |       j                               t        j                  t        j                  t        d	      t        dd      t        d
      t        dd      ik(  sJ t        | d	k\        t        j                  k(  sJ  t        |       |      t        t        |t        j                  kD  ft        j                  |t        j                  k  ft        d	      |t        d
d      k  ft        d
      df      k(  sJ t        |       j                  j                         t!        dD cg c]  }t#        | j$                  |       c} k(  sJ | j                  j                  j&                  t)        dd	d
      k(  sJ t+        t,        d        t+        t,        d        t+        t,        d        t        ddd	d      }t/        |      dk(  sJ t        |d	k        t        |d	kD        z   dk7  sJ y c c}w )Nr   rS   re   rS   rJ   rI   Tcheckr   rs   rJ   rI   c                  z    t        dt        j                  t        j                  t        j                  dd      S )Nr   r   Tr   )r.   r   rz   ro   rF   rD   rZ   ztest_FiniteRV.<locals>.<lambda>  s#    xAFFqvv-NVZ[ rF   c                  r    t        dt        j                  t        dd      t        j                  dd      S )Nr   rN   rJ   r   Tr   )r.   r   rz   r   r}   ro   rF   rD   rZ   ztest_FiniteRV.<locals>.<lambda>  s(    xHROPQPUPU-V^bc rF   c                      t        dt        j                  t        dd      t        j                  t        dd      t        dd      t        dd      dd	      S )
Nr   rI   rJ   rN   re   rl   Tr   )r.   r   r}   r   r{   ro   rF   rD   rZ   ztest_FiniteRV.<locals>.<lambda>  sD    x8Aq>affB?xA8B?.DKO Q rF   rH   )rS   rJ   rM   )r.   r   rz   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8A;q>YQY'7!%%aff9M	
1qHQN"#QqT4L2 2 2 2 !9&&(B#,	-a"QXXq/	--/ / / / 88??)Aq!"4444
:[\
:cd
: Q R
 	!l#AQ4199Q!V9qQx1$$$ 
.s   :I
c                  $   ddl m}  t        d|       }t        |      } |d      d| z
  k(  sJ  |t        j
                        d| z
  k(  sJ  |d      dk(  sJ d|v sJ d|vsJ  |t        j
                        |t        j
                     k(  sJ y )Nr   )r   r`   rS   rM   )	sympy.abcr   r   r,   r   r{   )r   r`   r   s      rD   test_density_callr    s    #qA
AQ41q5==QVV9AQ41996M6A::QVV9!&&	!!!rF   c                      ddl m t        d        j                  t        j
                        t        j                  u sJ  j                        j                  di      j                         t        dd      k(  sJ  j                        j                  di      j                         dk(  sJ  j                        j                  di      j                         dk(  sJ  j                        j                  t        dd      i      j                         dk(  sJ t        t         fd       t        t         fd	       y )
Nr   )r`   rO   rS   rT   rN   rI   c                  <     j                  t        ddg            S )Nr   )r   r   r   s   rD   rZ   z&test_DieDistribution.<locals>.<lambda>  s    quuVQF^4 rF   c                  2     j                  dz  dz
        S )NrJ   rS   )r   rH   r`   s   rD   rZ   z&test_DieDistribution.<locals>.<lambda>  s    quuQTAX rF   )r  r`   r;   r   r   rz   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                  f    t        dd      } t        |       }|j                  t        d      k(  sJ y )NrH   rO   )r   r/   r,   r;   )rH   spaces     rD   test_FinitePSpacer    s-    CA1IE==OA....rF   c            	      6   t        dt        dd            } t        dd      }t        d      \  }}t	        t        | |            }t        ||kD        }|t        t        dd      t        |d      fd      t        t        dd      t        |d      fd      z   k(  sJ |t        t        dd      |dk  fd      t        t        j                  |d	k  fd      z   t        t        dd      |dk  fd      z   t        t        j                  |dk  fd      z   k(  sJ y )
NrC   rS   re   rQ   zb, nrx   rI   r   rJ   )r   r   r   r   r'   r
   r(   r   r   rz   r}   )rC   rQ   rX   r   rK   rV   s         rD   test_symbolic_conditionsr    s   #x1~&ACA6?DAq	"Q(A	!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   ra   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  ro   rF   rD   <module>r)     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   