a
    lº”h½O  ã                   @   sp  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d„ ZUdd„ ZVdd„ ZWdd „ ZXd!d"„ ZYd#d$„ ZZd%d&„ Z[d'd(„ Z\d)d*„ Z]d+d,„ Z^d-d.„ Z_d/d0„ Z`d1d2„ Zad3d4„ Zbd5d6„ Zcd7d8„ Zdd9d:„ Zed;d<„ Zfd=d>„ Zgd?d@„ ZhdAdB„ ZidCdD„ ZjdEdF„ ZkdGS )Hé    )Ú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                 C   sP   t | |ƒt t| |ƒƒt |ƒ ks$J ‚t | |ƒt || ƒt | ƒ t |ƒ ksLJ ‚d S ©N)r&   r   )ÚAÚB© rB   úN/var/www/auris/lib/python3.9/site-packages/sympy/stats/tests/test_finite_rv.pyÚ	BayesTest    s    $rD   c                     st  t dƒ\‰ ‰‰} tdˆ ˆˆgƒ}t|ƒˆ ˆ ˆ d ks<J ‚tt|ƒˆ d ˆd  ˆd  d ˆ d ˆd  ˆd  d   ƒdksˆJ ‚tt|ˆ ƒƒtt|ˆƒƒ  krÈtt|ˆƒƒ  krÈtdƒksÎn 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 ]f}tt||ƒƒtdƒksJJ ‚t||kƒt|d ƒd kslJ ‚t||kƒtd	| ƒd ks*J ‚q*tttddƒƒ ¡ ƒtttdtddƒƒƒ ¡ ƒksÊJ ‚t|ƒ| ƒttˆ  |  ƒd ttˆ |  ƒd  ttˆ |  ƒd  ksJ ‚t|ƒ| ƒtˆ |  ƒd tˆ|  ƒd  tˆ|  ƒd  ksZJ ‚tt‡ ‡‡fdd„ƒ d S )Nza b c tÚXé   é   r   z1/3ÚYéûÿÿÿé   z-1/2z33/4éÿÿÿÿz1/10é   é
   ÚDÚUé   é   c                      s   t dˆ ˆ ˆ ˆˆˆgƒS )NÚZ)r   rB   ©ÚaÚbÚcrB   rC   Ú<lambda>A   ó    z&test_discreteuniform.<locals>.<lambda>)r   r   r'   r   r(   r&   r	   r
   Úranger8   r   Údictr+   r   Úitemsr4   r   r   r5   r>   Ú
ValueError)ÚtrE   rH   ÚxrB   rS   rC   Útest_discreteuniform%   s.    6ÿÿF"&ÿ
NBr_   c                     s†	  t ddƒt ddƒt ddƒ  ‰ } }tdƒ\}}}}tˆ ƒdtj ksHJ ‚tˆ ƒtddƒks^J ‚tˆ |  ƒd	ksrJ ‚tˆ ˆ  ƒd	ks†J ‚t|ˆ  | ƒ|tˆ ƒ | ksªJ ‚tˆ |  ƒtˆ ƒt| ƒ   krÜtˆ |  d
ƒksân J ‚tˆ ˆ  ƒdtˆ ƒ   krtˆ ˆ  d
ƒksn J ‚tˆ dƒdks.J ‚tdˆ  dƒdtˆ dƒ ksPJ ‚tˆ | ƒtj	u sfJ ‚tˆ ˆ |  ƒtˆ ƒks‚J ‚t
ttˆ tj ƒdƒƒd tjksªJ ‚tˆ | ƒdks¾J ‚tˆ | ƒt| ˆ ƒksØJ ‚tˆ |  dƒtˆ |  ƒksøJ ‚tˆ |  dƒtˆ |  ƒksJ ‚tˆ dƒdks,J ‚tˆ dkƒtjksDJ ‚td
ˆ  dkƒtjks`J ‚tˆ | kƒtddƒks|J ‚ttˆ | ƒƒttˆ dƒƒksžJ ‚tˆ ˆ dkƒd  krÎtˆ ddˆ dkƒksÔn J ‚tˆ | dkƒtˆ ƒ  krtˆ dd| dkƒksn J ‚tˆ |  tˆ | ƒƒtd
ˆ  ƒks4J ‚tˆ dƒdksHJ ‚tdˆ  d
ƒdtˆ d
ƒ ksjJ ‚tˆ ƒ|ƒtt|dk|dk B 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kˆ dkƒtju sJ ‚tˆ | kt| dƒƒtj	u s>J ‚ttˆ |  dƒƒtddƒks`J ‚ttˆ |  dƒtˆ dƒƒtddƒksŠJ ‚t
ˆ |  ƒt
| | ƒ  krºt
ˆ ˆ  ƒksÀn J ‚t
d
ˆ  | |  ƒ}|tdƒ tddƒkr|tdƒ tddƒkrtdƒ|vsJ ‚tˆ ƒj ¡ t‡ fdd„dD ƒŽ ks@J ‚tˆ dkƒjtdddƒks`J ‚tˆ ƒ|ƒt dt! | ƒd t dt! | ƒd  t dt! | ƒd  t dt! | ƒd  t d
t! | ƒd  t t!| ƒd  ksæJ ‚t"ˆ ƒ|ƒt d| ƒd t d| ƒd  t d| ƒd  t d| ƒd  t d
| ƒd  t |ƒd  ksTJ ‚t#ˆ ƒtddƒkslJ ‚t dd	ƒ}t#|ƒtdƒksŒJ ‚t$ˆ dkˆ |  dk ƒ t$tˆ |  |ƒ|| kƒ t$ˆ dkˆ d
kƒ t%t&dd„ ƒ t%t&dd„ ƒ t%t&dd„ ƒ td dd!\}}	t d|ƒ}t
|ƒj'}
|
t(t)|ƒƒks0J ‚t|
 *|d¡ +¡  ,¡ ƒh d"£ksVJ ‚t|
 *|d¡ +¡  -¡ ƒtddƒhks€J ‚t.d#dd$}	t|ƒ /t0t|	| |	|kfd%ƒ|	d|fƒ¡s¾J ‚t|ƒ *|d¡ +¡ tddƒksâJ ‚t.d&ƒ}t1|ƒ|	ƒ}| /t0td| |dk||k@ fd%ƒ|d|	fƒ¡s,J ‚| *|d|	d
i¡ +¡ tddƒksRJ ‚t.d'ƒ}t|ƒ|ƒ}| /t0tt |t! | ƒ| |dk||k@ fd%ƒ|d|fƒ¡s¨J ‚| *|d¡ +¡ t dt! | ƒd t d
t! | ƒd  t t!| ƒd  ksöJ ‚t"|ƒ|ƒ}| /t0tt || ƒ| |dk||k@ fd%ƒ|d|fƒ¡	s@J ‚| *|d¡ +¡ t d| ƒd t d
| ƒd  t |ƒd  k	s‚J ‚d S )(NrE   rL   rH   rR   za b t prF   é#   é   rQ   rG   é   r   rP   é@   TrJ   é   é$   é   él   i  éØ   i:  c                    s   g | ]}t ˆ j|ƒ‘qS rB   ©r	   Úsymbol©Ú.0Úi©rE   rB   rC   Ú
<listcomp>q   rX   ztest_dice.<locals>.<listcomp>©rP   rG   rF   rb   rJ   rL   rN   c                   S   s
   t ddƒS )NrE   rK   ©r   rB   rB   rB   rC   rW   €   rX   ztest_dice.<locals>.<lambda>c                   S   s
   t ddƒS )NrE   r   rq   rB   rB   rB   rC   rW      rX   c                   S   s
   t ddƒS )NrE   ç      ø?rq   rB   rB   rB   rC   rW   ‚   rX   zn, k©Úpositive>   rP   rG   rF   rb   Úk©Úinteger©r   TÚkir]   )2r   r   r'   r
   ÚHalfr(   r   r2   r)   ÚZeror+   r	   r   ÚPir0   r3   r*   r7   r&   r1   r6   r   r   ÚOner.   ÚdomainÚ
as_booleanr   r,   Úsetr   r4   r   r   r5   r8   rD   r>   r\   rZ   r=   r:   ÚsubsÚdoitÚkeysÚvaluesr   Údummy_eqr   r/   )rH   rR   rT   rU   r]   ÚpÚdrN   Únru   Údensry   ZcumufÚcfZmgfrB   rn   rC   Ú	test_diceC   s¤    "$88"(  "6:&"66þ "*6Bÿ †n


&* ÿ
$(ÿ
&4ÿ
N0ÿ
r‹   c                  C   sT   t ddƒ} t| | dkƒtdƒtjiks*J ‚t| dk| dkƒ ¡ t| jdƒksPJ ‚d S )NrE   rL   rJ   rG   )r   r+   r
   r}   r,   r   r	   rj   rn   rB   rB   rC   Ú
test_given    s    
 rŒ   c               	      s   t ddƒt ddƒ ‰ ‰ˆ jˆj } }tˆ ˆkƒ}|j| |kksBJ ‚ttˆ ˆkˆdkƒƒ}| ¡ 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
ˆ ˆ ƒjj	ƒdksÔJ ‚t ddƒ‰tt‡ ‡fdd	„ƒ t
ˆ ˆ ƒjjtd
dddddƒd ksJ ‚tˆ dkƒjtdddƒks>J ‚ˆ j
jjt‡ fdd„td
dƒD ƒŽ ksjJ ‚tˆ ˆkƒjt‡ ‡fdd„td
dƒD ƒŽ ksœJ ‚d S )Nr^   rL   ÚyrF   rJ   rb   re   c                      s   t ˆ ˆkƒS r?   ©r&   rB   )rE   rR   rB   rC   rW   µ   rX   ztest_domains.<locals>.<lambda>rP   rG   c                    s   g | ]}t ˆ j|iƒ‘qS rB   )r   rj   rk   rn   rB   rC   ro   »   rX   z test_domains.<locals>.<listcomp>rQ   c                    s8   g | ]0}t d dƒD ] }||krtˆ j|ˆj|iƒ‘qqS )rP   rQ   )rY   r   rj   )rl   rm   Új)rE   rH   rB   rC   ro   ½   s   ÿ)r   rj   r,   Ú	conditionr   r   r   r	   ÚlenÚelementsr.   r~   r>   r\   r€   r   rZ   rY   )r^   r   r‡   rB   )rE   rH   rR   rC   Útest_domains¦   s,    &ÿÿ

, 
ÿÿr“   c                  C   s<  t dƒ\} }}}td| ||ƒ}t|ƒ||  ||  d   ks@J ‚t|ƒ| | ksTJ ‚t|ƒ| d|  kslJ ‚t|ƒ|ƒ| tt| | ƒ |  d tt| | ƒ  ksªJ ‚t|ƒ|ƒ| t|| ƒ |  d t|| ƒ  ksàJ ‚td| ddƒ}tdƒ}t|ƒ| ksJ ‚t	t
|ƒƒ| d|   ks&J ‚t|| | ƒ|t|ƒ | ksLJ ‚t	t
|| | ƒƒt	|d t
|ƒ ƒkszJ ‚t|ƒ|ƒtt|dk|dk B fd|d|  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
d„ ƒ ttdd„ ƒ |j d¡dks<J ‚tddƒ} tdd| ƒ}tddd|  ƒ}tddd	|  ƒ}t|| || || ƒ 	¡ dks˜J ‚t|d|  | |d|  | |d|  | ƒ 	¡ tdƒtddƒ ksäJ ‚t|d|  | |d|  | |d|  | |dk ƒ 	¡ tdƒ tddƒ ks8J ‚d S )Nzp a b trA   rP   r   ÚzrG   rH   rR   rF   c                   S   s
   t ddƒS )NrA   rr   ©r   rB   rB   rB   rC   rW   Ö   rX   z test_bernoulli.<locals>.<lambda>c                   S   s
   t ddƒS )NrA   g      à¿r•   rB   rB   rB   rC   rW   ×   rX   rJ   rE   rQ   é	   iù  ra   i³A  iqENiü
  l   ½ó) )r   r   r'   r+   r4   r   r   r5   r   r   r(   r6   r   r   r   r8   r   r>   r\   r.   Zcompute_expectationr    r9   r   )r†   rT   rU   r]   rE   r”   rH   rR   rB   rB   rC   Útest_bernoulliÀ   s@    ">6&.B
&2ÿ
8ÿr—   c               	   C   sR   t ddƒ} tj}t| ƒt|d |d |d d| d d| d |dœƒksNJ ‚d S )NrN   rL   rF   rG   rJ   rp   )r   r
   r}   r/   r   )rN   ÚorB   rB   rC   Útest_cdfæ   s    
ÿ0ÿr™   c                     s  t dƒt dƒ ‰ ‰tdƒ\} }ttˆ ˆƒƒtjks6J ‚ttˆ ˆƒƒ| | ftddƒ| |ftddƒ|| ftddƒ||ftddƒiks„J ‚t	tˆ ƒ 
¡ ƒ| tj|tjiks¨J ‚t dtddƒƒ}tt|| ƒƒtddƒksÔJ ‚tˆ ƒj}| ¡ ttˆ j| ƒtˆ j|ƒƒksJ ‚tt‡ ‡fdd	„ƒ d S )
NÚCrN   zH, TrP   rb   ÚFrM   c                      s   t ˆ ˆkƒS r?   rŽ   rB   ©rš   rN   rB   rC   rW   ý   rX   ztest_coins.<locals>.<lambda>)r   r   r&   r	   r
   rz   r+   r   r   rZ   r[   r.   r~   r   r   rj   r>   r\   )ÚHÚTr›   r‡   rB   rœ   rC   Ú
test_coinsî   s    (ÿ
$
(rŸ   c                   C   s    t tdd„ ƒ t tdd„ ƒ d S )Nc                   S   s   t dddƒS )NrU   çš™™™™™É?g      à?©r    rB   rB   rB   rC   rW      rX   z1test_binomial_verify_parameters.<locals>.<lambda>c                   S   s   t dddƒS )NrU   rF   rr   r¡   rB   rB   rB   rC   rW     rX   )r>   r\   rB   rB   rB   rC   Útest_binomial_verify_parametersÿ   s    r¢   c                  C   sF  t dƒ} dtddƒtjtddƒdg}| D ]}|D ]
}td||ƒ}t|ƒ|| ksXJ ‚t|ƒ|| d|  kstJ ‚|dkrôd|  k rdk rôn n`t|ƒdd|  t|| d|  ƒ ksÀJ ‚t	|ƒddd| d|   || d|    ksôJ ‚t |d ƒD ]<}t
t||ƒƒt||ƒ||  d| ||   ks J ‚q q2q(d S )	NrJ   r   rP   rb   rF   rE   rG   rL   )rY   r   r
   rz   r    r'   r(   r*   r   r7   r&   r	   r   )ÚnvalsZpvalsrˆ   r†   rE   ru   rB   rB   rC   Útest_binomial_numeric  s    

 ,4r¤   c                  C   sü   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d	}t| ƒ|ƒtt|tj	k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 ‚d S )NrE   é2   gffffffî?é   rd   rJ   r†   Trs   rP   é    rF   é   rG   é   rb   )r    r
   rz   r6   r8   r   r   r   r   r}   r{   r   )rE   r†   rB   rB   rC   Útest_binomial_quantile  s    *6$þ
rª   c                     s^  d} t ddd}td| |ƒ}tdƒ}tt|ƒƒ| |   krNtt|dƒƒksTn J ‚tt|ƒƒ| | d|    kr†tt|dƒƒksŒn J ‚tt	|ƒdd|  t
| | d|  ƒ  ƒdksÀJ ‚tt|ƒd	dd
| d|   | | d|     ƒdksüJ ‚t|ƒ|ƒ|d tdt | ƒ d| | d  tt| ƒ  | d d  ksRJ ‚t|ƒ|ƒ|d td| ƒ d| | d  t|ƒ  | d d  ks J ‚t dƒ\}}td| |||d}tt|ƒ| || |d|     ƒdksìJ ‚t dƒ} td| |ƒ‰ tt‡ fdd„ƒ tˆ ƒjtt| |ddƒƒks4J ‚ttˆ ƒj | d¡ ¡  ¡ ƒtjtjtdƒtd	ƒtdƒhksvJ ‚ttˆ ƒj | d¡ ¡  ¡ ƒd| d d| d| d	  d
|d  d| d  d|d	  d|  |d hksèJ ‚tddd}tˆ dkƒ t t!|||  d| | |    t"| |ƒ |dk|| k@ |dk@ fdƒ|d| fƒ¡sZJ ‚d S )NrG   r†   Trs   rE   r]   rP   r   rF   rL   zH TrH   )ÚsuccZfailrˆ   rA   c                      s   t ˆ dkƒS )NrG   rŽ   rB   ©rA   rB   rC   rW   4  rX   z(test_binomial_symbolic.<locals>.<lambda>rb   ru   rv   rx   )#r   r    r   r   r'   r1   r(   r2   r   r*   r   r7   r4   r   r   r5   r>   ÚNotImplementedErrorr+   rZ   r=   r;   r€   r   r‚   rƒ   r
   r{   r}   r„   r   r…   r   r   r   )rˆ   r†   rE   r]   r   rž   rH   ru   rB   r¬   rC   Útest_binomial_symbolic  sF    084<VN."ÿ
Lÿ
0ÿÿÿÿÿr®   c                  C   sp  t tdd„ ƒ t tdd„ ƒ t td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 ]H}|D ]>}td|||ƒ}t|ƒt|dƒksºJ ‚t	|ƒt
|dƒks’J ‚q’qŠq‚tdƒ\}}}td|||ƒsöJ ‚d}tddd\}}td|||ƒ}tdƒ}t|ƒ ¡ t|dƒ ¡ ks@J ‚t	|ƒ ¡ t
|dƒ ¡ ks`J ‚t|ƒt|d
ƒksxJ ‚t|ƒ|ƒtdt | ƒt|d |ƒ t||ƒ dtt| ƒ t|d |d ƒ t||ƒ  t||d ƒt||ƒ  ksöJ ‚t|ƒ|ƒtd| ƒt|d |ƒ t||ƒ dt|ƒ t|d |d ƒ t||ƒ  t||d ƒt||ƒ  kslJ ‚d S )Nc                   S   s   t ddddƒS )NrU   r    rP   rG   ©r!   rB   rB   rB   rC   rW   A  rX   z$test_beta_binomial.<locals>.<lambda>c                   S   s   t ddddƒS )NrU   rG   rK   r¯   rB   rB   rB   rC   rW   B  rX   c                   S   s   t ddddƒS )NrU   rG   rP   éþÿÿÿr¯   rB   rB   rB   rC   rW   C  rX   rU   rG   rP   rJ   rb   rF   rM   rE   za b nr^   za bTrs   r]   )r>   r\   r!   rY   r   r
   rz   r'   r1   r(   r2   r   r   Úexpandr*   r3   r4   r   r   r   r5   )r£   Z	alphavalsZbetavalsrˆ   rT   rU   rE   r]   rB   rB   rC   Útest_beta_binomial?  s@    
  0*ÿÿ,&ÿÿr²   c               
   C   sR  t ddƒD ]@} t d| d ƒD ]*}t d| d ƒD ]}td| ||ƒ}tt| ||fƒ\} }}tt|ƒ ¡ ƒdkstJ ‚t|ƒ|| |  ksŒJ ‚| dkrÈt|ƒ|||   | |  |  | |  | d  ksÈJ ‚| dkr2d|  k rä| k r2n q2|| k r2t	|ƒt
| d|  t| d ƒ | d|   t|| | |  | |  ƒ| d   ƒks2J ‚q2qq
d S )NrP   rJ   r   rE   rG   )rY   r"   Úmapr   Úsumr+   r„   r'   r(   r*   r   r   )ÚNÚmrˆ   rE   rB   rB   rC   Útest_hypergeometric_numericb  s    4(*"ÿr·   c               	   C   s<  t dƒ\} }}td| ||ƒ}t|ƒj}t|dkƒ}|tt| ||ƒƒksJJ ‚| | d¡ ¡ ttd||ƒƒksnJ ‚t	| | d|d|di¡ ¡  
¡ ƒtjtjhks J ‚t	| | d|d|di¡ ¡  ¡ ƒtddƒtddƒhksÚJ ‚tddd	}| tt|t||ƒ t| | | | ƒ t| |ƒ |dkfd
ƒ|d|fƒ¡s8J ‚d S )NzN, m, nr   rG   rJ   rF   rP   ru   Trv   rx   r   )r   r"   r+   rZ   r'   r=   r<   r   r‚   r€   rƒ   r
   r{   r}   r„   r   r   r…   r   r   r   )rµ   r¶   rˆ   r   r‰   Zexpecru   rB   rB   rC   Útest_hypergeometric_symbolicq  s(    
$2:$ÿÿÿÿÿr¸   c                  C   s¼   t dƒ} tdƒ}t| ƒdks J ‚t| ƒdks0J ‚t| ƒd tjksFJ ‚t| ƒd tjks\J ‚t| ƒ|ƒtt	| ƒd tt	 | ƒd  ksŽJ ‚t
| ƒ|ƒt|ƒd t| ƒd  ks¸J ‚d S )NrE   r]   r   rP   rK   rG   )r#   r   r'   r(   r+   r
   rz   r4   r   r   r5   )rE   r]   rB   rB   rC   Útest_rademacher  s    2r¹   c                     s–  t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ tdƒ‰ t t‡ fdd„ƒ tdddd	} td
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|ƒ |¡td|  t|dƒfd||d   | |kfdƒksòJ ‚g d¢}|D ]Þ}t| | |¡ƒt|ƒ  kr8t| | |¡dƒks>n J ‚t| | |¡ƒ|d t|ƒ t|ƒd    krˆt| | |¡dƒksŽn J ‚t| | |¡ƒt| | |¡dƒks¶J ‚t| | |¡ƒt| | |¡dƒksþJ ‚qþtt| ƒd ttt| | ƒ|| |  |d| fƒ | d¡ ¡  t| | d¡ƒ|ƒks<J ‚t|ƒd tt|| ƒ|| |  |d| fƒ | d¡ ¡  t| | d¡ƒ|ƒks’J ‚d S )Nc                   S   s
   t ddƒS )NÚsoléôÿÿÿ©r$   rB   rB   rB   rC   rW   ‹  rX   z$test_ideal_soliton.<locals>.<lambda>c                   S   s
   t ddƒS )Nrº   gffffff*@r¼   rB   rB   rB   rC   rW   Œ  rX   c                   S   s
   t ddƒS )Nrº   r   r¼   rB   rB   rB   rC   rW     rX   Úfc                      s   t tddƒƒ ˆ ¡S )Nrº   rM   )r+   r$   ÚpmfrB   ©r½   rB   rC   rW     rX   ru   T©rw   rt   r^   r]   rº   rP   rx   )rJ   é   r¥   éd   iè  rG   rF   rb   rM   )r>   r\   r   r   r$   r+   Úlowr
   r}   ÚhighrZ   r=   r¾   r   r	   r'   r   r   r1   r(   r2   r*   r3   r7   r   r   r   r‚   r4   r5   )ru   r^   r]   rº   Úk_valsrm   rB   r¿   rC   Útest_ideal_solitonŠ  s*    
@<P((^rÆ   c            
         sÆ  t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ tdƒ‰ t t‡ fdd„ƒ tdddd	} td
dd}td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| 	| |||||	i¡ƒt
| 	| |||||	i¡dƒks
J ‚t| 	| |||||	i¡ƒt| 	| |||||	i¡dƒksFJ ‚t| 	| |||||	i¡ƒt| 	| |||||	i¡dƒks‚J ‚t| 	| |||||	i¡ƒt| 	| |||||	i¡dƒksÊJ ‚qÊqÂq¸d S )Nc                   S   s   t ddddƒS )NÚrobSolr»   çš™™™™™¹?g{®Gáz”?©r%   rB   rB   rB   rC   rW   ¥  rX   z%test_robust_soliton.<locals>.<lambda>c                   S   s   t ddddƒS )NrÇ   r©   g=
×£p=þ?rÈ   rÉ   rB   rB   rB   rC   rW   ¦  rX   c                   S   s   t ddddƒS )NrÇ   é   ç333333ã?g{®GázÀrÉ   rB   rB   rB   rC   rW   §  rX   r½   c                      s   t tddddƒƒ ˆ ¡S )NrÇ   rÊ   rË   rÈ   )r+   r%   r¾   rB   r¿   rB   rC   rW   ©  rX   ru   TrÀ   Údeltars   rV   rÇ   rP   )rM   rÁ   r¥   )r    gš™™™™™Ù?rË   )g{®Gáz„?g¸…ëQ¸ž?gš™™™™™©?rG   rF   rb   )r>   r\   r   r   r%   r+   rÃ   rÄ   r'   r   r1   r(   r2   r*   r3   r7   )
ru   rÌ   rV   rÇ   rÅ   Z
delta_valsZc_valsr^   r   r”   rB   r¿   rC   Útest_robust_soliton¤  s*    
<<<rÍ   c               	      s†  t dtjtddƒtddƒdœdd‰ tddd} ttˆ ƒ ¡ ƒtjtjtd	ƒtddƒtd
ƒtddƒikslJ ‚t	ˆ d	kƒtjks‚J ‚t
ˆ ƒ| ƒtt| tjkftj| tjkftd	ƒ| td
dƒkftd
ƒdfƒksÐJ ‚tˆ ƒj ¡ t‡ fdd„dD ƒŽ ksøJ ‚ˆ jjjtdd	d
ƒksJ ‚ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ t ddd	dœƒ}t|ƒdks`J ‚t	|d	kƒt	|d	kƒ dks‚J ‚d S )Nr›   rP   rb   ©rP   rG   rF   T©Úcheckr†   rs   rG   rF   c                    s   g | ]}t ˆ j|ƒ‘qS rB   ri   rk   ©r›   rB   rC   ro   Ç  rX   z!test_FiniteRV.<locals>.<listcomp>c                   S   s   t dtjtjtjdœddS )Nr›   rÎ   TrÏ   )r-   r
   rz   rB   rB   rB   rC   rW   Ê  rX   ztest_FiniteRV.<locals>.<lambda>c                   S   s    t dtjtddƒtjdœddS )Nr›   rK   rG   rÎ   TrÏ   )r-   r
   rz   r   r}   rB   rB   rB   rC   rW   Ë  rX   c                
   S   s8   t dtjtddƒtjtddƒtddƒtddƒdœdd	S )
Nr›   rF   rG   rK   éýÿÿÿrb   rp   TrÏ   )r-   r
   r}   r   r{   rB   rB   rB   rC   rW   Ì  s   ÿÿrE   )rP   rG   rJ   )r-   r
   rz   r   r   rZ   r+   r[   r}   r&   r6   r   r   r.   r~   r   r   r€   r   r>   r\   r'   )r†   rE   rB   rÑ   rC   Útest_FiniteRV½  s"    $<&ÿ
ÿ
rÓ   c                  C   sŒ   ddl m}  td| ƒ}t|ƒ}|dƒd|  ks2J ‚|tjƒd|  ksHJ ‚|dƒdksXJ ‚d|v sdJ ‚d|vspJ ‚|tjƒ|tj ksˆJ ‚d S )Nr   )r†   r^   rP   rJ   )Ú	sympy.abcr†   r   r+   r
   r{   )r†   r^   r‡   rB   rB   rC   Útest_density_callÕ  s    
rÕ   c                      sà   ddl m‰ tdƒ‰ ˆ  tj¡tju s*J ‚ˆ  ˆ¡ ˆdi¡ ¡ t	ddƒksPJ ‚ˆ  ˆ¡ ˆdi¡ ¡ dkspJ ‚ˆ  ˆ¡ ˆdi¡ ¡ dksJ ‚ˆ  ˆ¡ ˆt	ddƒi¡ ¡ dks¶J ‚t
t‡ fdd	„ƒ t
t‡ ‡fd
d	„ƒ d S )Nr   )r^   rL   rP   rQ   rK   rF   c                      s   ˆ   tddgƒ¡S )Nr   )r¾   r   rB   rn   rB   rC   rW   ê  rX   z&test_DieDistribution.<locals>.<lambda>c                      s   ˆ   ˆd d ¡S )NrG   rP   )r¾   rB   ©rE   r^   rB   rC   rW   ë  rX   )rÔ   r^   r:   r¾   r
   rz   r{   r   r‚   r   r>   r\   rB   rB   rÖ   rC   Útest_DieDistributionâ  s    &  &r×   c                  C   s(   t ddƒ} t| ƒ}|jtdƒks$J ‚d S )NrE   rL   )r   r.   r+   r:   )rE   ÚspacerB   rB   rC   Útest_FinitePSpaceí  s    
rÙ   c                  C   sà   t dtddƒƒ} tddƒ}tdƒ\}}tt| |ƒƒ}t||kƒ}|ttddƒt|dƒfdƒttddƒt|dƒfdƒ ks|J ‚|ttddƒ|dk fdƒttj	|d	k fdƒ ttddƒ|dk fdƒ ttj
|dk fdƒ ksÜJ ‚d S )
NrA   rP   rb   rN   zb, nrx   rF   r   rG   )r   r   r   r   r&   r	   r'   r   r
   rz   r}   )rA   rN   rU   rˆ   rH   rR   rB   rB   rC   Útest_symbolic_conditionsò  s"    
ÿÿ*ÿÿÿrÚ   N)lZsympy.concrete.summationsr   Zsympy.core.containersr   r   Zsympy.core.functionr   Zsympy.core.numbersr   r   r   Zsympy.core.relationalr	   Zsympy.core.singletonr
   Zsympy.core.symbolr   r   r   Zsympy.core.sympifyr   Z(sympy.functions.combinatorial.factorialsr   Z%sympy.functions.combinatorial.numbersr   Z&sympy.functions.elementary.exponentialr   Z(sympy.functions.elementary.miscellaneousr   Z$sympy.functions.elementary.piecewiser   Z(sympy.functions.elementary.trigonometricr   Z&sympy.functions.special.beta_functionsr   Zsympy.logic.boolalgr   r   Zsympy.polys.polytoolsr   Zsympy.sets.setsr   Zsympy.simplify.simplifyr   Zsympy.matricesr   Zsympy.statsr   r   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   Zsympy.stats.frv_typesr:   r;   r<   Zsympy.stats.rvr=   Zsympy.testing.pytestr>   rD   r_   r‹   rŒ   r“   r—   r™   rŸ   r¢   r¤   rª   r®   r²   r·   r¸   r¹   rÆ   rÍ   rÓ   rÕ   r×   rÙ   rÚ   rB   rB   rB   rC   Ú<module>   s\   €]& #