U
    ˜9%e½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$t‚t | |ƒt || ƒt | ƒ t |ƒ ksLt‚d S ©N)r&   r   ÚAssertionError)ÚAÚB© rC   ú_/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sympy/stats/tests/test_finite_rv.pyÚ	BayesTest    s    $rE   c                     st  t dƒ\‰ ‰‰} tdˆ ˆˆgƒ}t|ƒˆ ˆ ˆ d ks<t‚tt|ƒˆ d ˆd  ˆd  d ˆ d ˆd  ˆd  d   ƒdksˆt‚tt|ˆ ƒƒtt|ˆƒƒ  krÈtt|ˆƒƒ  krÈtdƒksÎn t‚tdt	dd	ƒƒ}t|ƒtd
ƒksòt‚t|ƒtdƒkst‚t
|ƒtddƒks t‚t	dd	ƒD ]f}tt||ƒƒtdƒksJt‚t||kƒt|d ƒd kslt‚t||kƒtd	| ƒd ks*t‚q*tttddƒƒ ¡ ƒtttdt	ddƒƒƒ ¡ ƒksÊt‚t|ƒ| ƒttˆ  |  ƒd ttˆ |  ƒd  ttˆ |  ƒd  kst‚t|ƒ| ƒtˆ |  ƒd tˆ|  ƒd  tˆ|  ƒd  ksZt‚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   rC   ©ÚaÚbÚcrC   rD   Ú<lambda>A   ó    z&test_discreteuniform.<locals>.<lambda>)r   r   r'   r@   r   r(   r&   r	   r
   Úranger8   r   Údictr+   r   Úitemsr4   r   r   r5   r>   Ú
ValueError)ÚtrF   rI   ÚxrC   rT   rD   Ú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sHt‚tˆ ƒtddƒks^t‚tˆ |  ƒd	ksrt‚tˆ ˆ  ƒd	ks†t‚t|ˆ  | ƒ|tˆ ƒ | ksªt‚tˆ |  ƒtˆ ƒt| ƒ   krÜtˆ |  d
ƒksân t‚tˆ ˆ  ƒdtˆ ƒ   krtˆ ˆ  d
ƒksn t‚tˆ dƒdks.t‚tdˆ  dƒdtˆ dƒ ksPt‚t	ˆ | ƒtj
ksft‚t	ˆ ˆ |  ƒtˆ ƒks‚t‚tttˆ tj ƒdƒƒd tjksªt‚tˆ | ƒdks¾t‚tˆ | ƒt| ˆ ƒksØt‚tˆ |  dƒtˆ |  ƒksøt‚tˆ |  dƒtˆ |  ƒkst‚tˆ dƒdks,t‚tˆ dkƒtjksDt‚td
ˆ  dkƒtjks`t‚tˆ | kƒtddƒks|t‚ttˆ | ƒƒttˆ dƒƒksžt‚tˆ ˆ dkƒd  krÎtˆ ddˆ dkƒksÔn t‚tˆ | dkƒtˆ ƒ  krtˆ dd| dkƒksn t‚tˆ |  tˆ | ƒƒtd
ˆ  ƒks4t‚tˆ dƒdksHt‚tdˆ  d
ƒdtˆ d
ƒ ksjt‚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 t‚tˆ dkˆ dkƒtjkst‚tˆ | kt| dƒƒtj
ks>t‚ttˆ |  dƒƒtddƒks`t‚ttˆ |  dƒtˆ dƒƒtddƒksŠt‚tˆ |  ƒt| | ƒ  krºtˆ ˆ  ƒksÀn t‚td
ˆ  | |  ƒ}|tdƒ tddƒkr|tdƒ tddƒkrtdƒ|kst‚tˆ ƒj ¡ t‡ fdd„dD ƒŽ ks@t‚tˆ dkƒjtdddƒks`t‚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æt‚t#ˆ ƒ|ƒt!d| ƒd t!d| ƒd  t!d| ƒd  t!d| ƒd  t!d
| ƒd  t!|ƒd  ksTt‚t$ˆ ƒtddƒkslt‚t dd	ƒ}t$|ƒtdƒksŒt‚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s0t‚t|
 +|d¡ ,¡  -¡ ƒdd
ddhksZt‚t|
 +|d¡ ,¡  .¡ ƒtddƒhks„t‚t/d"dd#}	t|ƒ 0t1t|	| |	|kfd$ƒ|	d|fƒ¡sÂt‚t|ƒ +|d¡ ,¡ tddƒksæt‚t/d%ƒ}t2|ƒ|	ƒ}| 0t1td| |dk||k@ fd$ƒ|d|	fƒ¡s0t‚| +|d|	d
i¡ ,¡ tddƒksVt‚t/d&ƒ}t |ƒ|ƒ}| 0t1tt!|t" | ƒ| |dk||k@ fd$ƒ|d|fƒ¡s¬t‚| +|d¡ ,¡ t!dt" | ƒd t!d
t" | ƒd  t!t"| ƒd  ksút‚t#|ƒ|ƒ}| 0t1tt!|| ƒ| |dk||k@ fd$ƒ|d|fƒ¡	sDt‚| +|d¡ ,¡ t!d| ƒd t!d
| ƒd  t!|ƒd  k	s†t‚d S )'NrF   rM   rI   rS   za b t prG   é#   é   rR   rH   é   r   rQ   é@   TrK   é   é$   é   él   i  éØ   i:  c                    s   g | ]}t ˆ j|ƒ‘qS rC   ©r	   Úsymbol©Ú.0Úi©rF   rC   rD   Ú
<listcomp>q   s     ztest_dice.<locals>.<listcomp>©rQ   rH   rG   rc   rK   rM   rO   c                   S   s
   t ddƒS )NrF   rL   ©r   rC   rC   rC   rD   rX   €   rY   ztest_dice.<locals>.<lambda>c                   S   s
   t ddƒS )NrF   r   rr   rC   rC   rC   rD   rX      rY   c                   S   s
   t ddƒS )NrF   ç      ø?rr   rC   rC   rC   rD   rX   ‚   rY   zn, k©ÚpositiveÚk©Úinteger©r   TÚkir^   )3r   r   r'   r
   ÚHalfr@   r(   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   rE   r>   r]   r[   r=   r:   ÚsubsÚdoitÚkeysÚvaluesr   Údummy_eqr   r/   )rI   rS   rU   rV   r^   ÚpÚdrO   Únrv   Údensrz   ZcumufÚcfZmgfrC   ro   rD   Ú	test_diceC   s¬    "$88"(  "6:&"    þ "*6Bÿ †n


** ÿ
$(ÿ
&4ÿ
N0ÿ
rŒ   c                  C   sT   t ddƒ} t| | dkƒtdƒtjiks*t‚t| dk| dkƒ ¡ t| jdƒksPt‚d S )NrF   rM   rK   rH   )	r   r+   r
   r~   r@   r,   r€   r	   rk   ro   rC   rC   rD   Ú
test_given    s    
 r   c               	      s   t ddƒt ddƒ ‰ ‰ˆ jˆj } }tˆ ˆkƒ}|j| |kksBt‚ttˆ ˆkˆdkƒƒ}| ¡ ttt| dƒt|dƒƒtt| dƒt|dƒƒtt| dƒt|dƒƒƒks¦t‚t	|j
ƒdks¸t‚t	tˆ ˆ ƒjj
ƒdksÔt‚t ddƒ‰tt‡ ‡fdd	„ƒ tˆ ˆ ƒjjtd
dddddƒd kst‚tˆ dkƒjtdddƒks>t‚ˆ jjjt‡ fdd„td
dƒD ƒŽ ksjt‚tˆ ˆkƒjt‡ ‡fdd„td
dƒD ƒŽ ksœt‚d S )Nr_   rM   ÚyrG   rK   rc   rf   c                      s   t ˆ ˆkƒS r?   ©r&   rC   )rF   rS   rC   rD   rX   µ   rY   ztest_domains.<locals>.<lambda>rQ   rH   c                    s   g | ]}t ˆ j|iƒ‘qS rC   )r   rk   rl   ro   rC   rD   rp   »   s     z test_domains.<locals>.<listcomp>rR   c                    s8   g | ]0}t d dƒD ] }||krtˆ j|ˆj|iƒ‘qqS )rQ   rR   )rZ   r   rk   )rm   rn   Új)rF   rI   rC   rD   rp   ½   s
      ÿ)r   rk   r,   Ú	conditionr@   r   r€   r   r	   ÚlenÚelementsr.   r   r>   r]   r   r   r[   rZ   )r_   rŽ   rˆ   rC   )rF   rI   rS   rD   Útest_domains¦   s,    &ÿÿ

, 
ÿÿr”   c                  C   s<  t dƒ\} }}}td| ||ƒ}t|ƒ||  ||  d   ks@t‚t|ƒ| | ksTt‚t|ƒ| d|  kslt‚t|ƒ|ƒ| tt| | ƒ |  d tt| | ƒ  ksªt‚t|ƒ|ƒ| t|| ƒ |  d t|| ƒ  ksàt‚td| ddƒ}t	dƒ}t|ƒ| kst‚t
t|ƒƒ| d|   ks&t‚t|| | ƒ|t|ƒ | ksLt‚t
t|| | ƒƒt
|d t|ƒ ƒkszt‚t|ƒ|ƒtt|dk|dk B fd|d|  kfd|dkfƒks¼t‚tdtddƒƒ}t|ƒtddƒksät‚tdtdd	ƒƒ}t|ƒtdƒks
t‚ttd
d„ ƒ ttdd„ ƒ |j d¡dks<t‚tddƒ} tdd| ƒ}tddd|  ƒ}tddd	|  ƒ}t|| || || ƒ 
¡ dks˜t‚t|d|  | |d|  | |d|  | ƒ 
¡ tdƒtddƒ ksät‚t|d|  | |d|  | |d|  | |dk ƒ 
¡ tdƒ tddƒ ks8t‚d S )Nzp a b trB   rQ   r   ÚzrH   rI   rS   rG   c                   S   s
   t ddƒS )NrB   rs   ©r   rC   rC   rC   rD   rX   Ö   rY   z test_bernoulli.<locals>.<lambda>c                   S   s
   t ddƒS )NrB   g      à¿r–   rC   rC   rC   rD   rX   ×   rY   rK   rF   rR   é	   iù  rb   i³A  iqENiü
  l   ½ó) )r   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‡   rU   rV   r^   rF   r•   rI   rS   rC   rC   rD   Ú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sNt‚d S )NrO   rM   rG   rH   rK   rq   )r   r
   r~   r/   r   r@   )rO   ÚorC   rC   rD   Útest_cdfæ   s    
ÿ0ÿrš   c                     s  t dƒt dƒ ‰ ‰tdƒ\} }ttˆ ˆƒƒtjks6t‚ttˆ ˆƒƒ| | ft	ddƒ| |ft	ddƒ|| ft	ddƒ||ft	ddƒiks„t‚t
tˆ ƒ ¡ ƒ| tj|tjiks¨t‚t dt	ddƒƒ}tt|| ƒƒt	ddƒksÔt‚tˆ ƒj}| ¡ ttˆ j| ƒtˆ j|ƒƒkst‚tt‡ ‡fdd	„ƒ d S )
NÚCrO   zH, TrQ   rc   ÚFrN   c                      s   t ˆ ˆkƒS r?   r   rC   ©r›   rO   rC   rD   rX   ý   rY   ztest_coins.<locals>.<lambda>)r   r   r&   r	   r
   r{   r@   r+   r   r   r[   r\   r.   r   r€   r   rk   r>   r]   )ÚHÚTrœ   rˆ   rC   r   rD   Ú
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 )NrV   çš™™™™™É?g      à?©r    rC   rC   rC   rD   rX      rY   z1test_binomial_verify_parameters.<locals>.<lambda>c                   S   s   t dddƒS )NrV   rG   rs   r¢   rC   rC   rC   rD   rX     rY   )r>   r]   rC   rC   rC   rD   Ú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sXt‚t|ƒ|| d|  kstt‚|dkrôd|  k rdk rôn n`t|ƒdd|  t	|| d|  ƒ ksÀt‚t
|ƒddd| d|   || d|    ksôt‚t |d ƒD ]<}tt||ƒƒt||ƒ||  d| ||   ks t‚q q2q(d S )	NrK   r   rQ   rc   rG   rF   rH   rM   )rZ   r   r
   r{   r    r'   r@   r(   r*   r   r7   r&   r	   r   )ÚnvalsZpvalsr‰   r‡   rF   rv   rC   rC   rD   Útest_binomial_numeric  s    

 ,4r¥   c                  C   sü   t ddtjƒ} t| ƒdƒtdƒks&t‚t| ƒtdƒks:t‚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ât‚t| ƒtddƒksøt‚d S )NrF   é2   gffffffî?é   re   rK   r‡   Trt   rQ   é    rG   é   rH   é   rc   )r    r
   r{   r6   r@   r8   r   r   r   r   r~   r|   r   )rF   r‡   rC   rC   rD   Útest_binomial_quantile  s    *   þ
r«   c                     s^  d} t ddd}td| |ƒ}tdƒ}tt|ƒƒ| |   krNtt|dƒƒksTn t‚tt|ƒƒ| | d|    kr†tt|dƒƒksŒn t‚t	t
|ƒdd|  t| | d|  ƒ  ƒdksÀt‚t	t|ƒd	dd
| d|   | | d|     ƒdksüt‚t|ƒ|ƒ|d tdt | ƒ d| | d  tt| ƒ  | d d  ksRt‚t|ƒ|ƒ|d td| ƒ d| | d  t|ƒ  | d d  ks t‚t dƒ\}}td| |||d}tt|ƒ| || |d|     ƒdksìt‚t dƒ} td| |ƒ‰ tt‡ fdd„ƒ tˆ ƒjtt| |ddƒƒks4t‚ttˆ ƒj | d¡ ¡  ¡ ƒtjtjtdƒtd	ƒtdƒhksvt‚ttˆ ƒj | d¡ ¡  ¡ ƒd| d d| d| d	  d
|d  d| d  d|d	  d|  |d hksèt‚tddd}tˆ dkƒ  t!t"|||  d| | |    t#| |ƒ |dk|| k@ |dk@ fdƒ|d| fƒ¡sZt‚d S )NrH   r‡   Trt   rF   r^   rQ   r   rG   rM   zH TrI   )ÚsuccZfailr‰   rB   c                      s   t ˆ dkƒS )NrH   r   rC   ©rB   rC   rD   rX   4  rY   z(test_binomial_symbolic.<locals>.<lambda>rc   rv   rw   ry   )$r   r    r   r   r'   r1   r@   r(   r2   r   r*   r   r7   r4   r   r   r5   r>   ÚNotImplementedErrorr+   r[   r=   r;   r   r‚   rƒ   r„   r
   r|   r~   r…   r   r†   r   r   r   )r‰   r‡   rF   r^   rž   rŸ   rI   rv   rC   r­   rD   Ú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<t‚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ºt‚t
|ƒt|dƒks’t‚q’qŠq‚tdƒ\}}}td|||ƒsöt‚d}tddd\}}td|||ƒ}tdƒ}t|ƒ ¡ t	|dƒ ¡ ks@t‚t
|ƒ ¡ t|dƒ ¡ ks`t‚t|ƒt|d
ƒksxt‚t|ƒ|ƒtdt | ƒt|d |ƒ t||ƒ dtt| ƒ t|d |d ƒ t||ƒ  t||d ƒt||ƒ  ksöt‚t|ƒ|ƒtd| ƒt|d |ƒ t||ƒ dt|ƒ t|d |d ƒ t||ƒ  t||d ƒt||ƒ  kslt‚d S )Nc                   S   s   t ddddƒS )NrV   r¡   rQ   rH   ©r!   rC   rC   rC   rD   rX   A  rY   z$test_beta_binomial.<locals>.<lambda>c                   S   s   t ddddƒS )NrV   rH   rL   r°   rC   rC   rC   rD   rX   B  rY   c                   S   s   t ddddƒS )NrV   rH   rQ   éþÿÿÿr°   rC   rC   rC   rD   rX   C  rY   rV   rH   rQ   rK   rc   rG   rN   rF   za b nr_   za bTrt   r^   )r>   r]   r!   r@   rZ   r   r
   r{   r'   r1   r(   r2   r   r   Úexpandr*   r3   r4   r   r   r   r5   )r¤   Z	alphavalsZbetavalsr‰   rU   rV   rF   r^   rC   rC   rD   Ú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stt‚t|ƒ|| |  ksŒt‚| dkrÈt	|ƒ|||   | |  |  | |  | d  ksÈt‚| dkr2d|  k rä| k r2n q2|| k r2t
|ƒt| d|  t| d ƒ | d|   t|| | |  | |  ƒ| d   ƒks2t‚q2qq
d S )NrQ   rK   r   rF   rH   )rZ   r"   Úmapr   Úsumr+   r…   r@   r'   r(   r*   r   r   )ÚNÚmr‰   rF   rC   rC   rD   Útest_hypergeometric_numericb  s    4(*"ÿr¸   c               	   C   s<  t dƒ\} }}td| ||ƒ}t|ƒj}t|dkƒ}|tt| ||ƒƒksJt‚| | d¡ 	¡ ttd||ƒƒksnt‚t
| | d|d|di¡ 	¡  ¡ ƒtjtjhks t‚t
| | d|d|di¡ 	¡  ¡ ƒtddƒtddƒhksÚt‚tddd	}| tt|t||ƒ t| | | | ƒ t| |ƒ |dkfd
ƒ|d|fƒ¡s8t‚d S )NzN, m, nrž   rH   rK   rG   rQ   rv   Trw   ry   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ž   rŠ   Zexpecrv   rC   rC   rD   Útest_hypergeometric_symbolicq  s(    
$2:$ÿÿÿÿÿr¹   c                  C   s¼   t dƒ} tdƒ}t| ƒdks t‚t| ƒdks0t‚t| ƒd tjksFt‚t| ƒd tjks\t‚t| ƒ|ƒt	t
| ƒd t	t
 | ƒd  ksŽt‚t| ƒ|ƒt	|ƒd t	| ƒd  ks¸t‚d S )NrF   r^   r   rQ   rL   rH   )r#   r   r'   r@   r(   r+   r
   r{   r4   r   r   r5   )rF   r^   rC   rC   rD   Ú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†t	‚t|ƒj
| ks˜t	‚t|ƒjtt|ƒƒks²t	‚t|ƒ |¡td|  t|dƒfd||d   | |kfdƒksòt	‚dddddg}|D ]â}t| | |¡ƒt|ƒ  kr>t| | |¡dƒksDn t	‚t| | |¡ƒ|d t|ƒ t|ƒd    krŽt| | |¡dƒks”n t	‚t| | |¡ƒt| | |¡dƒks¼t	‚t| | |¡ƒt| | |¡dƒkst	‚qtt| ƒd ttt| | ƒ|| |  |d| fƒ | d¡ ¡  t| | d¡ƒ|ƒksFt	‚t|ƒd tt|| ƒ|| |  |d| fƒ | d¡ ¡  t| | d¡ƒ|ƒksœt	‚d S )Nc                   S   s
   t ddƒS )NÚsoléôÿÿÿ©r$   rC   rC   rC   rD   rX   ‹  rY   z$test_ideal_soliton.<locals>.<lambda>c                   S   s
   t ddƒS )Nr»   gffffff*@r½   rC   rC   rC   rD   rX   Œ  rY   c                   S   s
   t ddƒS )Nr»   r   r½   rC   rC   rC   rD   rX     rY   Úfc                      s   t tddƒƒ ˆ ¡S )Nr»   rN   )r+   r$   ÚpmfrC   ©r¾   rC   rD   rX     rY   rv   T©rx   ru   r_   r^   r»   rQ   ry   rK   é   r¦   éd   iè  rH   rG   rc   rN   )r>   r]   r   r   r$   r+   Úlowr
   r~   r@   Úhighr[   r=   r¿   r   r	   r'   r‚   r   r1   r(   r2   r*   r3   r7   r   r   r   rƒ   r4   r5   )rv   r_   r^   r»   Úk_valsrn   rC   rÀ   rD   Ú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Št‚t|ƒj| ksœt‚dddg}dddg}dddg}|D ]}|D ]ü}|D ]ò}	t	| 
| |||||	i¡ƒt| 
| |||||	i¡dƒkst‚t| 
| |||||	i¡ƒt| 
| |||||	i¡dƒksLt‚t| 
| |||||	i¡ƒt| 
| |||||	i¡dƒksˆt‚t| 
| |||||	i¡ƒt| 
| |||||	i¡dƒksÐt‚qÐqÈq¾d S )Nc                   S   s   t ddddƒS )NÚrobSolr¼   çš™™™™™¹?g{®Gáz”?©r%   rC   rC   rC   rD   rX   ¥  rY   z%test_robust_soliton.<locals>.<lambda>c                   S   s   t ddddƒS )NrÈ   rª   g=
×£p=þ?rÉ   rÊ   rC   rC   rC   rD   rX   ¦  rY   c                   S   s   t ddddƒS )NrÈ   é   ç333333ã?g{®GázÀrÊ   rC   rC   rC   rD   rX   §  rY   r¾   c                      s   t tddddƒƒ ˆ ¡S )NrÈ   rË   rÌ   rÉ   )r+   r%   r¿   rC   rÀ   rC   rD   rX   ©  rY   rv   TrÁ   Údeltart   rW   rÈ   rQ   rN   rÂ   r¦   r¡   gš™™™™™Ù?rÌ   g{®Gáz„?g¸…ëQ¸ž?gš™™™™™©?rH   rG   rc   )r>   r]   r   r   r%   r+   rÄ   r@   rÅ   r'   r‚   r1   r(   r2   r*   r3   r7   )
rv   rÍ   rW   rÈ   rÆ   Z
delta_valsZc_valsr_   rŽ   r•   rC   rÀ   rD   Ú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slt	‚t
ˆ d	kƒtjks‚t	‚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Ðt	‚tˆ ƒj ¡ t‡ fdd„dD ƒŽ ksøt	‚ˆ jjjtdd	d
ƒkst	‚ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ t ddd	dœƒ}t|ƒdks`t	‚t
|d	kƒt
|d	kƒ dks‚t	‚d S )Nrœ   rQ   rc   ©rQ   rH   rG   T©Úcheckr‡   rt   rH   rG   c                    s   g | ]}t ˆ j|ƒ‘qS rC   rj   rl   ©rœ   rC   rD   rp   Ç  s     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
   r{   rC   rC   rC   rD   rX   Ê  rY   ztest_FiniteRV.<locals>.<lambda>c                   S   s    t dtjtddƒtjdœddS )Nrœ   rL   rH   rÏ   TrÐ   )r-   r
   r{   r   r~   rC   rC   rC   rD   rX   Ë  rY   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œ   rG   rH   rL   éýÿÿÿrc   rq   TrÐ   )r-   r
   r~   r   r|   rC   rC   rC   rD   rX   Ì  s     ÿÿrF   )rQ   rH   rK   )r-   r
   r{   r   r   r[   r+   r\   r~   r@   r&   r6   r   r   r.   r   r€   r   r   r   r>   r]   r'   )r‡   rF   rC   rÒ   rD   Útest_FiniteRV½  s$    $<& 
ÿ
ÿ
rÔ   c                  C   sŒ   ddl m}  td| ƒ}t|ƒ}|dƒd|  ks2t‚|tjƒd|  ksHt‚|dƒdksXt‚d|ksdt‚d|kspt‚|tjƒ|tj ksˆt‚d S )Nr   )r‡   r_   rQ   rK   )Ú	sympy.abcr‡   r   r+   r@   r
   r|   )r‡   r_   rˆ   rC   rC   rD   Útest_density_callÕ  s    
rÖ   c                      sà   ddl m‰ tdƒ‰ ˆ  tj¡tjks*t‚ˆ  ˆ¡ ˆdi¡ 	¡ t
ddƒksPt‚ˆ  ˆ¡ ˆdi¡ 	¡ dkspt‚ˆ  ˆ¡ ˆdi¡ 	¡ dkst‚ˆ  ˆ¡ ˆt
ddƒi¡ 	¡ dks¶t‚tt‡ fdd	„ƒ tt‡ ‡fd
d	„ƒ d S )Nr   )r_   rM   rQ   rR   rL   rG   c                      s   ˆ   tddgƒ¡S )Nr   )r¿   r   rC   ro   rC   rD   rX   ê  rY   z&test_DieDistribution.<locals>.<lambda>c                      s   ˆ   ˆd d ¡S )NrH   rQ   )r¿   rC   ©rF   r_   rC   rD   rX   ë  rY   )rÕ   r_   r:   r¿   r
   r{   r|   r@   r‚   rƒ   r   r>   r]   rC   rC   r×   rD   Útest_DieDistributionâ  s    &  &rØ   c                  C   s(   t ddƒ} t| ƒ}|jtdƒks$t‚d S )NrF   rM   )r   r.   r+   r:   r@   )rF   ÚspacerC   rC   rD   Ú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|t‚|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Üt‚d S )
NrB   rQ   rc   rO   zb, nry   rG   r   rH   )r   r   r   r   r&   r	   r'   r   r@   r
   r{   r~   )rB   rO   rV   r‰   rI   rS   rC   rC   rD   Ú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>   rE   r`   rŒ   r   r”   r˜   rš   r    r£   r¥   r«   r¯   r³   r¸   r¹   rº   rÇ   rÎ   rÔ   rÖ   rØ   rÚ   rÛ   rC   rC   rC   rD   Ú<module>   s\   €]& #