o
    …º¥g›™  ã                   @   s4  d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	m
Z
 d dlmZmZmZmZmZmZ d dlmZ d dlmZmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlm Z  d dl!m"Z" d dl#m$Z$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/m0Z0 d dl1m2Z2 d dl3m4Z4m5Z5 d dl6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZB d dlCmDZD d dlEmFZF d dlGmHZH d dlImJZJmKZK d dlLmMZMmNZNmOZOmPZP d dlQmRZR d dlSmTZT d dlUmVZV d dlWmXZXmYZY d d lmZZZ d!d"„ Z[d#d$„ Z\d%d&„ Z]d'd(„ Z^d)d*„ Z_d+d,„ Z`d-d.„ Zad/d0„ Zbd1S )2é    )ÚSum)ÚTuple)ÚLambda)ÚFloatÚRationalÚooÚpi)ÚEqÚGeÚGtÚLeÚLtÚNe)ÚS)ÚSymbolÚsymbols)Ú	factorial)Úexp)Úceiling)Úsqrt)Ú	Piecewise)Úerf)ÚgammaÚ
lowergamma)ÚAndÚNot)ÚMatrix)ÚMatrixSymbol)ÚImmutableMatrix)ÚContains)ÚRange)Ú	FiniteSetÚInterval)ÚDiscreteMarkovChainÚPÚTransitionMatrixOfÚEÚStochasticStateSpaceOfÚvarianceÚContinuousMarkovChainÚBernoulliProcessÚPoissonProcessÚWienerProcessÚGammaProcessÚsample_stochastic_process)ÚJointDistribution)ÚJointDistributionHandmade)ÚRandomIndexedSymbol)ÚProbabilityÚExpectation)ÚraisesÚskipÚignore_warningsÚwarns_deprecated_sympy)Úimport_module)ÚBernoulliDistribution)ÚPoissonDistribution)ÚNormalDistributionÚGammaDistribution)ÚStrc            4         sH  t dƒ‰tˆjtƒsJ ‚ˆjtjksJ ‚tˆjtƒsJ ‚t	dddd‰tˆˆ t
ƒs,J ‚tˆd ƒtˆd ƒks:J ‚ttdd„ ƒ tt‡‡fdd„ƒ tt‡fd	d„ƒ tt‡fd
d„ƒ tt‡fdd„ƒ tddd} td| | ƒ}t| ƒ}t d||ƒ}tt|d dƒt|d dƒƒ|d ks‘J ‚tt‡fdd„ƒ tt‡fdd„ƒ t	ddd\}}}}dtdƒ|t ddƒgttdƒt|ƒtdƒddtdddƒ|||gg}dd„ |D ƒ}	t|	ƒD ]u\}
‰tˆjtƒsæJ ‚ˆj||
 ksøˆjt||
 Ž ksøJ ‚ˆjd ksÿJ ‚ttƒ+ ttˆd dƒtˆd dƒdd!ttˆd dƒtˆd dƒƒks'J ‚W d   ƒ n	1 s2w   Y  tˆd ƒtˆd ƒksFJ ‚tt‡fd"d„ƒ qÚttd#d„ ƒ t dtdˆdƒƒ‰ˆjtˆd d ƒksnJ ‚t dtg ƒd$t dtddgddggƒd$t dttdt g|d| ggƒd$g}	|	D ]}|j|jj d ks¥J ‚t|jt!ƒs®J ‚q—tg d%¢g d&¢g d'¢gƒ‰ td(d d ƒ}t dg d)¢ˆ ƒ‰t dg d*¢|ƒ‰ˆ "dˆd d ¡t#ˆd ˆd ˆd  ƒksëJ ‚tt‡fd+d„ƒ ttˆd  dƒtˆd dƒƒ $d¡t%d,dƒksJ ‚ttˆd  dƒtˆd dƒƒ|d- |d.  |d/ |d0   |d0 |d1     &¡ dks<J ‚ttˆd dƒtˆd dƒƒttˆd dƒƒksWJ ‚ttˆd  d ƒtˆd dƒƒ|d- |d.  |d/ |d0   |d0 |d1   ksJ ‚tg d2¢g d3¢g d4¢gƒ}ttˆd  dƒtˆd dƒt'ˆ|ƒ@ ƒ $d ¡t%d5d ƒks­J ‚ttƒ0 tˆd  dd!tˆd  ƒksÃJ ‚tˆd  tˆd dƒƒ $d¡t%d6d ƒksÚJ ‚W d   ƒ n	1 såw   Y  td(d7d7ƒ‰tt‡‡fd8d„ƒ ttd9d„ ƒ ttd:d„ ƒ tt‡fd;d„ƒ tt‡fd<d„ƒ tt(dd7ƒt(d d7ƒdgt(dd ƒt(dd ƒt(dd ƒgdt(dd7ƒt(d d7ƒggƒ}tt)tˆd dƒtˆd dƒtˆd dƒƒtttˆd dƒƒt(dd7ƒƒt'ˆ|ƒ@ ƒt(dd=ƒksqJ ‚tt)tˆd dƒtˆd dƒtˆd dƒƒt'ˆ|ƒƒttˆd dƒƒd7 ksšJ ‚tt*ˆd dƒt+ˆd dƒ@ tˆd dƒt,ˆg d)¢ƒ@ t'ˆ|ƒ@ ƒt(dd7ƒksÄJ ‚tt*ˆd dƒt+ˆd dƒ@ tˆd dƒt,ˆtdƒd>dgƒ@ t'ˆ|ƒ@ ƒt(dd7ƒksñJ ‚tt-ˆd dƒt-ˆd dƒ@ tˆd dƒt,ˆg d)¢ƒ@ t'ˆ|ƒ@ ƒtj.u sJ ‚tt-ˆd dƒt-ˆd dƒ@ tˆd dƒt,ˆtdƒd>dgƒ@ t'ˆ|ƒ@ ƒtj.u sDJ ‚tt)tˆd dƒtˆd dƒtˆd dƒƒtˆd dƒƒd?ttˆd dƒƒ ksoJ ‚ttj/ddgt(dd ƒt(dd ƒt(dd ƒgdt(dd7ƒt(d d7ƒggƒ}tt(dd7ƒt(d d7ƒdgt(dd ƒt(dd ƒt(dd ƒgdt(dd7ƒt(d d7ƒggƒ}t d|d$}t d|d$}| 0¡ t!g d@¢g dA¢g dB¢gƒdC ksÖJ ‚| 1¡ dksßJ ‚| 1¡ dksèJ ‚| 2¡ g d)¢|fksõJ ‚| 2¡ g d)¢|fksJ ‚| 3¡ g d)¢|dd…dd…f |dd …dd…f |dd …dd …f fks)J ‚| 3¡ g d)¢|tdd g ƒtddg ƒfks@J ‚tt(ddƒt(ddƒt(ddƒgt(ddDƒtj4t(ddƒgt(d dƒt(d dDƒt(ddDƒggƒ}t d|d$}t!t(dEdFƒt(d=dFƒt(d7dGƒggƒ}|j5|ksˆJ ‚| 6¡ dks‘J ‚| 7¡ dksšJ ‚td(d d ƒ}t d|d$}| 5||¡ 8¡ dks³J ‚|j9ddH :||¡ ;|¡ 8¡ tj<ksÈJ ‚ttj/ddddgtj4dtj4ddgdtj4dtj4dgddtj4dtj4gg dI¢gƒ}t d|d$}| 0¡ t!t(d dƒtj/tj4gtj/tdƒtj/gtj4tj/t(d dƒggƒksJ ‚| =¡ t!t(d d7ƒt(dd7ƒgtj4tj4gt(dd7ƒt(d d7ƒggƒks;J ‚t>ƒ  | ?¡  W d   ƒ n	1 sNw   Y  tt(ddƒt(dd7ƒt(dd7ƒgt(ddƒdt(ddƒgt(dd7ƒt(dd7ƒt(ddƒggƒ}t d|d$}| 1¡ dksŠJ ‚| 0¡ t!t(dJdKƒt(ddLƒt(dMdKƒgt(ddLƒt(dNdLƒt(ddLƒgt(dMdKƒt(ddLƒt(dJdKƒggƒks¼J ‚t dtg ƒd$‰ˆjdksÌJ ‚ˆ 9¡ tg gƒksØJ ‚ˆ @¡ g ksáJ ‚ˆ 2¡ g tg ƒfksîJ ‚ˆ 3¡ g tg ƒtg ƒtg ƒfksJ ‚ˆ 6¡ dks
J ‚ˆ 7¡ dksJ ‚tg dO¢g dP¢g dQ¢g dR¢g dS¢gƒdD }t d|d$}| @¡ }tAtB|Ž ƒ\}}}|dd gddgd7gfksJJ ‚|dTksQJ ‚|dUksXJ ‚tg dV¢g dW¢g dX¢g dY¢g dZ¢g d[¢gƒdD } t d| d$}!|! @¡ }tAtB|Ž ƒ\}}}|dd gg d\¢fksJ ‚|d]ks—J ‚|d1ksžJ ‚tg d^¢g d_¢g d`¢g da¢g db¢g dc¢g dd¢g de¢g df¢g dg¢g
ƒdD }"t d|"d$}#|# @¡ }tAtB|Ž ƒ\}}}|g dh¢dgg di¢dgd7gfksèJ ‚|djksïJ ‚|dkksöJ ‚tg dl¢tdƒd dtdƒd ddgdtdƒd dtdƒd dgddtdƒd dtdƒd gddddtdƒggƒ‰ t dmg dn¢ˆ ƒ}$|$ 3¡ \}%}&}'}(|%g do¢ksHJ ‚|&tddgddggƒksWJ ‚|'ttdƒd dgddgdtdƒd ggƒksqJ ‚|(tdtdƒd dgtdƒd dtdƒd gdtdƒd dggƒks–J ‚|$ 2¡ \}%})|%g do¢ks¥J ‚|)tg dl¢g dp¢tdƒd ddtdƒd dgddtdƒd dtdƒd gdtdƒd dtdƒd dggƒksÞJ ‚tg dq¢g dr¢g ds¢g dt¢g du¢gƒd7 ‰ t dˆ d$‰ˆ 6¡ 	r J ‚ˆ 7¡ 	sJ ‚tddgddggƒ‰ t dˆ d$‰ˆ 6¡ 	rJ ‚ˆ 7¡ 	s%J ‚tg dU¢g dv¢g dw¢gƒd7 ‰ t dˆ d$‰ˆ 6¡ 	sAJ ‚ˆ 7¡ 	sHJ ‚tddgddggƒd ‰ t dˆ d$‰ˆ 6¡ 	saJ ‚ˆ 7¡ 	shJ ‚tg dx¢g dy¢g dz¢gƒ‰ t dˆ d$‰ˆ 1¡ 	r‚J ‚tg d{¢g d|¢g d}¢g d~¢gƒd ‰ t dˆ d$‰ˆ 1¡ 	s¡J ‚tg d¢g d€¢g d¢g d‚¢g dƒ¢gƒd ‰ t dˆ d$‰ˆ 1¡ 	sÃJ ‚t dg d¢|ƒ}*|* @¡ }tAtB|Ž ƒ\}}}|dgdd gfk	säJ ‚|d]k	sëJ ‚|d/k	sòJ ‚|* 2¡ g d¢|fk	sÿJ ‚|* 3¡ g d¢|dd…dd…f |dd …dd…f |dd …dd …f fk
s&J ‚ttj4t(dd7ƒt(dd7ƒgt(dd ƒdt(dd ƒgtj4tj4dggƒ‰ t dg d)¢ˆ ƒ‰ttˆd dƒtˆd dƒ@ tˆd  dƒ@ tttˆd dƒƒt(dd7ƒƒtttˆd dƒƒt(dd7ƒƒ@ ƒt(dd„ƒk
s‰J ‚ttˆd dƒtˆd dƒB tˆd dƒƒt(dd ƒk
s§J ‚ttˆd dƒtˆd dƒ@ tˆd dƒƒtj.u 
sÃJ ‚tt-ˆd dƒtˆd dƒƒt(dd ƒk
sÚJ ‚tˆd d tˆd dƒƒt(d…d ƒk
sðJ ‚tCˆd tˆd dƒƒt(d…d†ƒksJ ‚tt‡fd‡d„ƒ tt‡ fdˆd„ƒ t dg d‰¢ˆ ƒ‰ttˆd dƒtˆd dƒ@ tˆd  dƒ@ tttˆd dƒƒt(dd7ƒƒtttˆd dƒƒt(dd7ƒƒ@ ƒt(dd„ƒksZJ ‚ttˆd dƒtˆd dƒB tˆd dƒƒt(dd ƒksxJ ‚ttˆd dƒtˆd dƒ@ tˆd dƒƒtj.u s”J ‚tt-ˆd dƒtˆd dƒƒt(dd ƒks«J ‚ˆjjDd }+ˆjjDd },tˆd d tˆd dƒƒ|+d d  d|,d  d     &¡ dksÚJ ‚tCˆd tˆd dƒƒd|+ d  |,d   d  d  d|+ d  d|, d   d d     &¡ dksJ ‚tt‡fdŠd„ƒ tt(ddDƒt(d dDƒt(ddDƒgt(ddDƒt(d‹dDƒt(ddDƒgt(d dDƒt(d dDƒt(d7dDƒggƒ‰ t dg d)¢ˆ ƒ‰ttˆd‹ ˆd ƒtˆd dƒƒ $d¡t%dŒdƒksdJ ‚tt+ˆd  ˆd ƒtˆd dƒƒ $d¡t%d,dƒks€J ‚ttEˆd ˆdD ƒtˆd7 dƒƒ $d¡t%dŽdƒksœJ ‚t%ttˆdD ˆd ƒtˆd7 dƒƒdƒt%dtt-ˆdD ˆd ƒtˆd7 dƒƒ dƒksÉJ ‚t%tt+ˆd… ˆd† ƒtˆd  dƒƒdƒt%dttEˆd… ˆd† ƒtˆd  dƒƒ dƒksöJ ‚t%tt*ˆd ˆd7 ƒtˆd dƒƒdƒt%dttFˆd ˆd7 ƒtˆd dƒƒ dƒks#J ‚ttˆd ˆdD ƒtˆd dƒƒttˆdD ˆd ƒtˆd dƒƒksHJ ‚tt+ˆd ˆd ƒtˆd dƒƒtt*ˆd ˆd ƒtˆd dƒƒksmJ ‚ttFˆd‹ ˆd ƒtˆd7 dƒƒttEˆd ˆd‹ ƒtˆd7 dƒƒks’J ‚t	dƒ\}+}-},}.tt(ddDƒt(d7dDƒt(ddDƒgt(d dDƒt(d7dDƒt(d dDƒgt(d‹dDƒt(ddDƒt(ddDƒggƒ‰ t dg d)¢ˆ ƒ‰ttˆ|+ |-ƒtˆ|, |.ƒƒ}/|/ :|+dD|-d|,d|.di¡ G¡  $d7¡ttˆdD dƒtˆd dƒƒ $d7¡ksJ ‚|/ :|+d‘|-d|,dD|.di¡ G¡  $d7¡ttˆd‘ dƒtˆdD dƒƒ $d7¡ks*J ‚tt+ˆ|+ |-ƒtˆ|, |.ƒƒ}0ttEˆ|+ |-ƒtˆ|, |.ƒƒ}1|0 :|+d|-d|,d|.di¡ G¡ |1 :|+d|-d|,d|.di¡ G¡  d’kskJ ‚ttFˆ|+ |-ƒtˆ|, |.ƒƒ}2tt*ˆ|+ |-ƒtˆ|, |.ƒƒ}3|2 :|+d7|-d|,d|.di¡ G¡ |3 :|+d7|-d|,d|.di¡ G¡  d’ks¬J ‚dˆd  d ˆd    &¡ dˆd  ksÃJ ‚dˆd  d ˆd    &¡ ˆd  ksÙJ ‚dd“ˆd    &¡ d”ˆd  ksìJ ‚dˆd  d“ˆd    &¡ d”ˆd d  ksJ ‚ˆd d ˆd d    &¡ ˆd d ˆd d  ks"J ‚d S )•NÚXÚtT©ÚpositiveÚintegerr   c                   S   ó   t dƒS )Né   ©r#   © rF   rF   ú`/var/www/visachat/venv/lib/python3.10/site-packages/sympy/stats/tests/test_stochastic_process.pyÚ<lambda>1   ó    z*test_DiscreteMarkovChain.<locals>.<lambda>c                      ó   ˆ ˆƒS ©NrF   rF   ©r>   r?   rF   rG   rH   2   rI   c                      ó   ˆ   ¡ S rK   )Úcommunication_classesrF   ©r>   rF   rG   rH   3   rI   c                      rM   rK   )Úcanonical_formrF   rO   rF   rG   rH   4   rI   c                      rM   rK   )Ú	decomposerF   rO   rF   rG   rH   5   rI   Ún)rB   ÚMÚYé   rD   )r   rD   c                      s   t ˆ ƒS rK   )r.   rF   )r?   rF   rG   rH   =   rI   c                      ó   t tˆ ƒƒS rK   ©Únextr.   rF   rO   rF   rG   rH   >   ó    za Rainy Cloudy Sunny)Úreal)rD   rU   é   ÚHelloÚWorldF)Úsympifyéÿÿÿÿé   c                 S   s   g | ]}t d |ƒ‘qS ©rT   rE   )Ú.0Ústate_spacerF   rF   rG   Ú
<listcomp>F   s    z,test_DiscreteMarkovChain.<locals>.<listcomp>r[   ©Úevaluatec                      rV   rK   rW   rF   ra   rF   rG   rH   Q   rY   c                   S   s   t dddiƒS )NrT   rD   rE   rF   rF   rF   rG   rH   S   s    )Útrans_probs©ç      à?çš™™™™™É?ç333333Ó?©rj   ri   rk   ©rj   rk   ri   ÚT©r   rD   rU   )ÚOneÚTwor[   c                      s   ˆ   ˆ d jˆ d j¡S ©NrD   rU   )Újoint_distributionÚsymbolrF   ra   rF   rG   rH   e   ó    ç
×£p=
×?)r   rU   )rD   r   )rD   rD   )rD   rU   )rU   rU   )ç      Ð?ç      è?r   )r   rw   rx   )rx   r   rw   g      Ø?çš™™™™™ñ?é   c                      s,   t ttˆd dƒtˆd dƒtˆˆ ƒ@ ƒƒS )Nr[   rU   rD   )Ústrr$   r	   r%   rF   )ÚTSOÚYSrF   rG   rH   q   s   , c                   S   s   t dg d¢tdƒƒS )NÚZro   rS   )r#   r   rF   rF   rF   rG   rH   r   s    c                   S   s   t dg d¢tdddƒƒS )Nr~   ro   rn   r[   rz   )r#   r   rF   rF   rF   rG   rH   s   ru   c                      ó   t ˆ d tˆ d dƒƒS )Nr[   rU   é   ©r&   r	   rF   ra   rF   rG   rH   t   ru   c                      r   )NrU   r[   rD   r   rF   ra   rF   rG   rH   u   ru   é   Ú0gš™™™™™¹?)é°   éQ   i|ÿÿÿ)é$   é   iÌÿÿÿ)iÔÿÿÿiÙÿÿÿéÐ   é}   é
   é   é'   é   )Úcondition_set)r   r   r   r   rD   éV   éK   é   iòÿÿÿé   )r   r`   r`   r   r   )r   r   r   rŠ   r   )r`   r   r`   r   r   )r   rŠ   r   r   r   )r   r[   r   r[   rz   )TFF)rU   rD   rD   )r   r   r   rŠ   r   r   )r`   r   r`   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   )rD   rU   r`   rz   )TF)
rU   r   r   r[   r   r   r[   rU   r   r   )
r   rŠ   r   r   r   r   r   r   r   r   )
r   rU   rU   r   r   r   r   r   r[   r[   )
r   r   r   r[   r   r   r€   rD   r   r   )
r   r   r   r   r`   r`   r   r   r   r   )
r   r   r   r   r   rŠ   r   r   r   r   )
rz   r   r   r`   r   r   rD   r   r   r   )
rU   r   r   rz   r   r   rU   rU   r   r   )
r[   r   rD   r   r   r   r   r   rz   rU   )
r   r   rz   r   r   r   r   r   r[   r[   )r   r[   r€   é   )rU   é   é	   )TTFTF)rD   rD   rD   rD   rD   )rD   r   r   r   r   ÚDW)r   rD   rU   r[   rz   )r   rz   rD   rU   r[   )r   rD   r   r   r   )r   rz   r   r   r   )rD   r   r[   r   r   )r   rU   r   rU   r   )r   r   r[   r   rD   )r   r   r   rz   r   )rU   r   rU   )rD   rD   rU   )r   rD   r   )rD   r   r   )r   r   rD   )rD   rD   r   r   )r   rD   rD   r   )rD   r   r   rD   )r   r   r   rU   )rU   r   r   r   r   )rD   r   rD   r   r   )r   rD   r   rD   r   )r   r   rD   r   rD   )r   r   r   r   rU   é   r”   r•   c                      ó   t ˆ d tˆ d dƒƒS rr   r   rF   rO   rF   rG   rH   >  ru   c                      s   t dddgˆ ƒS )Nr>   r   rD   rE   rF   )rn   rF   rG   rH   ?  ó    )ÚAÚBÚCc                      r˜   rr   r   rF   rO   rF   rG   rH   L  ru   r“   g‘aoÜ?r€   g·—4Fë¨â?é   úa b c dé   ç      ð?rw   ri   )Hr#   Ú
isinstancerc   r    Ú	index_setr   Ú	Naturals0Útransition_probabilitiesr   r   r1   r&   r3   r4   Ú	TypeErrorÚNotImplementedErrorr   r$   r	   Ú
ValueErrorr=   r   r   Ú	enumerater!   Únumber_of_statesr6   ÚUserWarningr2   r   r   r   Úshaper   rs   r/   Úroundr   Úsimplifyr%   r   r   r   r   r'   r   ÚZerorp   Úfundamental_matrixÚis_absorbing_chainrP   rQ   ÚHalfÚlimiting_distributionÚ
is_regularÚ
is_ergodicÚdoitÚstationary_distributionÚsubsÚcontainsÚtrueÚabsorbing_probabilitiesr7   Úabsorbing_probabilitesrN   ÚlistÚzipr(   Úargsr   r
   Úevalf)4ÚnzÚTZÚSZÚYZÚsymÚrainyÚcloudyÚsunnyÚstate_spacesÚchainsÚir~   ÚTSÚTOÚTO1ÚTO2ÚTO3ÚY2ÚY3ÚTO4ÚY4ÚwÚTS1ÚY5ÚTO6ÚY6ÚTO7ÚY7ÚtuplesÚclassesÚ
recurrenceÚperiodsÚTO8ÚY8ÚTO9ÚY9r–   Ústatesrš   r›   rœ   Ú
new_matrixÚY10ÚaÚcÚbÚdÚqueryÚquery_gtÚquery_leÚquery_geÚquery_ltrF   )rn   r|   r>   rT   r}   r?   rG   Útest_DiscreteMarkovChain'   s¦  *$þ$
Hÿ"þ04.ÿ
ÿ6T>
"0þJ*&ÿ
ÿ4
ÿ(ÿÿ
ÿ(ÿÿ
ÿ(ÿÿ
ÿ(ÿÿ
ÿV@J,N.R"*LJD
ÿP"þ&üüûû÷	÷
&ü4J
üüüþþþýýüüNþ*:ÿ
ÿ<8.,(*:ÿ
ÿ<8.FdV888ZZZJJJVNNFF.,&2>rï   c                  C   sh  t dƒstdƒ dd l} |  d¡ t dƒ}|r|j d¡ tg d¢g d¢g d¢gƒ}tdg d	¢|ƒ}td
ƒD ]}tt|ƒƒ|j	v sCJ ‚q6tdg d¢|ƒ}td
ƒD ]}tt|ƒƒ|j	v s]J ‚qPtt
jtddƒtddƒgtddƒdtddƒgt
jt
jdggƒ}tdg d	¢|ƒ}td
ƒD ]}tt|ƒƒ|j	v s–J ‚q‰tddttg|ƒ}td
ƒD ]}tt|ƒƒ|j	v s±J ‚q¤d S )NÚscipyz(SciPy Not installed. Skip sampling testsr   Únumpyrh   rl   rm   rT   ro   rŠ   r~   )Ú1rD   r   rD   rz   r[   rU   r>   ÚW)r8   r5   ÚrandomÚseedr   r#   ÚrangerX   r.   rc   r   r±   r   r   r   )rô   rñ   rn   rT   Úsampsr~   r>   ró   rF   rF   rG   Útest_sample_stochastic_processp  s2   
þÿrø   c                     s–
  t tdƒtdƒtjgtjtjtjgtddƒtddƒtdƒggƒ} tdg d¢| ƒ}| ¡ ttddƒtddƒtd	dƒggƒks?J ‚t tj tjtjgtjtj tjgtjtjtj ggƒ}tdg d¢|ƒ‰ ˆ j	t
d
dd}}ˆ  |¡|ƒt tjtd| ƒd  tjtd| ƒd  dgtjtd| ƒd  tjtd| ƒd  dgtjt| ƒ td| ƒd  tjtd| ƒd  t| ƒggƒksÄJ ‚ttƒ* ttˆ dƒdƒtˆ dƒdƒddttˆ dƒdƒtˆ dƒdƒƒksëJ ‚W d   ƒ n1 sõw   Y  ttˆ dƒdƒtˆ dƒdƒƒtdƒd tj ksJ ‚ttˆ dƒdƒtˆ dƒdƒ@ tˆ dƒdƒ@ tttˆ dƒdƒƒtjƒƒtdd	ƒtdƒd	  tdƒd tj  ksOJ ‚tttˆ dƒdƒtˆ dƒdƒ@ tˆ dƒdƒ@ ƒtˆ dƒdƒtˆ dƒdƒ@ tˆ dƒdƒ@ B tttˆ dƒdƒƒtdd	ƒƒtttˆ dƒdƒƒtdd	ƒƒ@ ƒtju s J ‚tˆ tddƒƒtˆ dƒdƒƒtdƒ d dttddƒƒ  tj ksÅJ ‚tˆ tddƒƒtˆ dƒdƒƒtjtdƒd  d tdƒd tj  tddƒtdƒd  d tjtdƒd    ksJ ‚tt‡ fdd„ƒ ttˆ dƒdƒtttˆ dƒdƒƒtjƒƒttˆ dƒdƒƒks+J ‚tdddƒ}tdg d¢|ƒ}|j	}| |¡|ƒt|| ƒksLJ ‚tdtdƒtdƒtdƒg|ƒ}tt|dƒdƒt|dƒdƒƒtdƒd tj ksvJ ‚tt|dƒtdƒƒt|dƒtdƒƒƒtdƒd tj ks•J ‚t tdƒ tddƒtddƒgtddƒtdƒ tddƒgtddƒtddƒtdƒ ggƒ}tdg d¢|d}	tt|	dƒ|	dƒƒt|	dƒdƒƒ d¡tddƒksåJ ‚tt|	d ƒ|	d!ƒƒt|	d"ƒdƒƒ d¡td#dƒksJ ‚tt|	d$ƒ|	d%ƒƒt|	d	ƒdƒƒ d&¡td'd&ƒksJ ‚ttt|	d(ƒ|	d)ƒƒt|	d*ƒdƒƒd+ƒtdtt|	d(ƒ|	d)ƒƒt|	d*ƒdƒƒ d+ƒksJJ ‚ttt|	d,ƒ|	d-ƒƒt|	d.ƒdƒƒd+ƒtdtt|	d,ƒ|	d-ƒƒt|	d.ƒdƒƒ d+ƒkswJ ‚ttt|	d/ƒ|	d0ƒƒt|	d1ƒdƒƒd+ƒtdtt |	d/ƒ|	d0ƒƒt|	d1ƒdƒƒ d+ƒks¤J ‚tt|	d2ƒ|	d3ƒƒt|	d4ƒdƒƒtt|	d3ƒ|	d2ƒƒt|	d4ƒdƒƒksÉJ ‚tt|	d5ƒ|	d6ƒƒt|	d7ƒdƒƒtt|	d6ƒ|	d5ƒƒt|	d7ƒdƒƒksîJ ‚tt |	d8ƒ|	d9ƒƒt|	d:ƒdƒƒtt|	d9ƒ|	d8ƒƒt|	d:ƒdƒƒksJ ‚t
d;ƒ\}
}}}tt|	|
ƒ|ƒt|	|ƒ|ƒƒ}| !|
d<|d|d=|di¡ "¡  d¡tt|	d<ƒdƒt|	d=ƒdƒƒ d¡ksQJ ‚tt|	|
ƒ|ƒt|	|ƒ|ƒƒ}tt|	|
ƒ|ƒt|	|ƒ|ƒƒ}| !|
d>|d|d?|di¡ "¡ | !|
d>|d|d?|di¡ "¡  d@ks’J ‚tt |	|
ƒ|ƒt|	|ƒ|ƒƒ}tt|	|
ƒ|ƒt|	|ƒ|ƒƒ}| !|
dA|d|dB|di¡ "¡ | !|
dA|d|dB|di¡ "¡  d@ksÓJ ‚d|	dƒ d|	dƒ   #¡ d|	dƒ ksêJ ‚d|	dƒ d|	dƒ   #¡ |	dƒ ks J ‚ddC|	dƒ   #¡ dD|	dƒ ksJ ‚d|	dƒ dC |	dƒ  #¡ dD|	dƒd  ks,J ‚|	dƒd |	dƒd   #¡ |	dƒd |	dƒd  ksIJ ‚d S )ENéþÿÿÿrU   r[   éýÿÿÿrœ   ro   é   r—   rz   r?   T©rA   r   rD   Fre   r_   c                      s*   t tˆ dƒdƒtt tˆ dƒdƒƒtjƒƒS )NrD   r   )r$   r	   r   r±   rF   ©ÚC2rF   rG   rH   £  s   * z,test_ContinuousMarkovChain.<locals>.<lambda>r`   ÚGrƒ   rò   Ú2rŠ   r•   )rc   Úgen_matg
×£p=Š@g…ëQ¸…	@g/Ý$•ë?g¥÷¯=³Ö?gö(\Â­X@g;ßO—Î3@gTã¥›Ä &@g…w¹ˆïÄÔ?gš™™™™™@gÓMbX9$@r€   gœ¤ùcZ›å?gHáz®G@gHáz®G@g
×£p=
@r   gáz®Gá
@gV-²ñ?gš™™™™™é?gš™™™™™@gR¸…ëQ@gÃõ(\Âù?gF¶óýÔø@gmçû©ñÒ%@g1¬Zd@g—nƒÀ@gÍÌÌÌÌÌ#@goƒÀÊ¡ñ?g{®Gáz@gTã¥›Ä ð?g/Ý$•Ã?rž   g333333@g{®Gázü?gffffff*@gR¸…ëQ
@r    g¸…ëQ¸@g333333÷?rw   ri   )$r   r   r®   ÚNegativeOnerp   r   r)   r²   r   Úgenerator_matrixr   r¤   r±   r   r6   rª   r$   r	   r2   r   r&   r(   r4   ÚKeyErrorr   r   r¬   r   r   r   r   r   r
   r·   r¿   r­   )ÚT1ÚC1ÚT2rš   r?   rÕ   ÚCS1ÚC3rÿ   rœ   ræ   rè   rç   ré   rê   rë   rì   rí   rî   rF   rý   rG   Útest_ContinuousMarkovChain‹  s†   þ.8:,<þ
Fÿ6*ÿ&
ÿ.(ÿ:þ
þJB*ÿB 6>V888ZZZJJJNFF.,&2>r
  c                     s$  t ddddd‰ ˆ jtddƒksJ ‚ˆ jtjksJ ‚ˆ jdks!J ‚ˆ jdks(J ‚t dtddƒdd	d} | jtdd	ƒks=J ‚t	d
ƒ\}}t
| d | d | d   ƒ|d d d| | d  |d  d|d  d  d| d  kssJ ‚t	dddd\‰}tˆ ˆ tƒs…J ‚ttdd„ ƒ tt‡ ‡fdd„ƒ tt‡ fdd„ƒ ˆ  ˆ d ˆ d ¡ttˆ d ˆ d ftdtˆ d dƒfdtˆ d dƒfdƒtdtˆ d dƒfdtˆ d dƒfdƒ ƒƒksÞJ ‚ˆ  dˆ d ¡ttˆ d ˆ d ftdtˆ d dƒfdtˆ d dƒfdƒtdtˆ d dƒfdtˆ d dƒfdƒ ƒƒksJ ‚ˆ d ˆ d  ˆ d  }tt|dƒƒ d¡tddƒks:J ‚tt|dƒƒ d¡tddƒksLJ ‚tt|dƒƒ d¡dks[J ‚tt|dƒƒ d¡tddƒksmJ ‚ttˆ d dƒtˆ d dƒ@ tˆ d dƒ@ tˆ d dƒ@ ƒ d¡tddƒks–J ‚t
dˆ d  ˆ d  ƒ d¡tddƒks­J ‚t
dˆ d  ˆ d  d ƒ d¡tddƒksÆJ ‚t
ˆ d ˆ d  ˆ d  ƒ d¡tddƒksßJ ‚t
ˆ d dktˆ d dƒtˆ d dƒ@ ƒ d¡tddƒksÿJ ‚t
ˆ d ƒdks
J ‚tˆ d dkƒ d¡tddƒksJ ‚tˆ d dk ƒ d¡tddƒks0J ‚tˆ d dkˆ d dkƒ d¡tddƒksHJ ‚tˆ d ˆ d  dkƒ d¡td dƒks_J ‚tˆ d ˆ d  dkˆ d dk ƒ d¡td dƒks{J ‚ttˆ d dƒˆ d dkƒd!ksŽJ ‚ttˆ d dƒƒdksœJ ‚ttˆ d dƒˆ d dk ƒdks¯J ‚tˆ d dktˆ d dƒƒdksÂJ ‚tˆ d dk tˆ d dƒƒdksÕJ ‚tˆ d dkˆ d d"kƒdksçJ ‚tˆ d dkˆ d ƒtdddƒksûJ ‚ttd#d„ ƒ tt‡ fd$d„ƒ tˆ ˆ ˆddfƒ}tˆ ˆ ˆddfƒ}tˆ ˆ d ˆddfƒ}| ¡ ˆ d ˆ d  ˆ d  ˆ d  ˆ d  ksFJ ‚| ¡ |ksOJ ‚| ¡ ˆ d d ˆ d d  ˆ d d  kshJ ‚ˆ dˆ  jˆ dˆ  ˆhkszJ ‚ˆ d jˆ d hks‡J ‚ˆ |ˆ  jˆ |ˆ  |ˆhksšJ ‚dˆ ˆ  dˆ ˆ    ¡ dˆ ˆ  ks±J ‚dˆ ˆ  dˆ ˆ    ¡ ˆ ˆ  ksÇJ ‚dd%ˆ ˆ    ¡ d&ˆ ˆ  ksÚJ ‚dˆ ˆ  d% ˆ ˆ   ¡ d&ˆ ˆ d  ksóJ ‚ˆ ˆ d ˆ ˆ d   ¡ ˆ ˆ d ˆ ˆ d  ksJ ‚d S )'Nr›   g333333ã?rD   r   ©ÚpÚsuccessÚfailurer>   r[   ÚHrn   zH,TrU   r•   rz   zt, xTr@   c                   S   s   t dddddS )Nr>   ry   rD   r   r  )r*   rF   rF   rF   rG   rH   Ý  r™   z'test_BernoulliProcess.<locals>.<lambda>c                      rJ   rK   rF   rF   ©r›   r?   rF   rG   rH   Þ  rI   c                      s   ˆ d S )Nrú   rF   rF   ©r›   rF   rG   rH   à  rI   gš™™™™™Ù?)r   Tg¸…ëQ¸®?g…ëQ¸…Û?gÍÌÌÌÌÌä?gÍÌÌÌÌÌü?r`   g333333@rŠ   g¸…ëQ¸î?r—   rv   r    r“   c                   S   rC   )Nr[   ©r$   rF   rF   rF   rG   rH     rI   c                      s   t ˆ d dkdƒS )Nr[   r   r  rF   r  rF   rG   rH     s    rw   ri   )r*   rc   r!   r¢   r   r£   r  r  r   r   r&   r¡   r1   r4   r§   r¦   Ú
IndexErrorrs   r0   r   r   r	   r$   r¬   r   r   r9   r   rµ   Úfree_symbolsr­   )r>   r  rn   ÚxrT   ÚexprÚexpr2Úexpr3rF   r  rG   Útest_BernoulliProcessÍ  s~   `$&&ÿÿ &&ÿÿ$$$R.22@&&0.8&&&&$(62$&.,&2>r  c            	   
      s`  t ddƒ‰ ˆ jtjksJ ‚ˆ jtdtƒksJ ‚ˆ jdksJ ‚tddd\‰‰} }t	ˆ ˆƒt
ƒs1J ‚ˆ  ˆ¡tdˆ ƒks>J ‚tƒ  ˆ  ˆ ˆƒ¡ W d   ƒ n1 sSw   Y  ttdd„ ƒ tt‡ ‡fd	d„ƒ tt‡ fd
d„ƒ ˆ  ˆ dƒˆ dƒ¡ttˆ dƒˆ dƒfdˆ dƒ dˆ dƒ  tdƒ tˆ dƒƒtˆ dƒƒ  ƒƒks¥J ‚ˆ  dd¡ttˆ dƒˆ dƒfdˆ dƒ dˆ dƒ  tdƒ tˆ dƒƒtˆ dƒƒ  ƒƒksÔJ ‚tˆ ˆƒdk ƒtdˆ ƒksäJ ‚ttˆ ˆƒdƒtˆt dd¡ƒƒtdƒksûJ ‚ttˆ ˆƒdƒtˆt dd¡ƒƒ}|dtdƒ ksJ ‚ttˆ ˆƒdƒtˆ ˆƒdƒ@ tˆ | ƒdƒ@ tˆ |ƒdƒ@ tˆt dd¡ƒtˆt dd¡ƒ@ t| t dd¡ƒ@ t|t dd¡ƒ@ ƒ|d ks_J ‚ttˆ ˆƒdƒtˆ ˆƒdƒ@ tˆt dd¡ƒtˆt dd¡ƒ@ ƒttˆ ˆƒdƒtˆ ˆƒdƒ@ tˆt dd¡ƒtˆt dd¡ƒ@ ƒks¤J ‚tt‡ ‡‡fdd„ƒ ttˆ dƒdƒƒdtdƒ d ksÃJ ‚ttˆ ˆƒdƒtˆt dd¡ƒƒdtdƒ d ksßJ ‚tˆ ˆƒdktˆt dd¡ƒƒ}tˆ ˆƒdktˆt dd¡ƒƒ}|dtdƒ ks
J ‚||  ¡ dksJ ‚tttˆ ˆƒdƒˆ ˆƒdk@ ƒtˆt dd¡ƒtˆt dd¡ƒ@ ƒ ¡ dtdƒ dtdƒ  d ksJJ ‚ttˆ ˆƒdƒtˆ ˆƒdƒB tˆt dd¡ƒƒdd tdƒ  ksmJ ‚tt‡ ‡‡fd!d„ƒ t ˆ ˆƒƒdˆ ks…J ‚t ˆ ˆƒd ˆ ˆƒd  ˆ |ƒd  tˆt dd¡ƒtˆt dd¡ƒ@ t|t dd¡ƒ@ ƒd"ks¸J ‚t ˆ ˆƒd tˆt dd¡ƒƒdksÍJ ‚t | ˆ ˆƒˆ ˆƒ  ˆ ˆƒd ˆ ˆƒd   tˆt dd¡ƒtˆt dd¡ƒ@ ƒt!| ˆ ˆƒˆ ˆƒ  ˆ ˆƒd ˆ ˆƒd   tˆt dd¡ƒtˆt dd¡ƒ@ ƒks"J ‚tt‡ ‡fd#d„ƒ t ˆ ˆƒˆ ˆƒ ˆ ˆƒˆ ˆƒ  tˆt dd¡ƒtˆt dd¡ƒ@ ƒdksTJ ‚t ˆ dƒ| t ˆ dƒƒ  ƒd$|  d kskJ ‚t | ˆ dƒ | ƒd|  | ks~J ‚ttˆ dƒdƒtˆ ˆƒdƒ@ tˆt dd¡ƒƒdtdƒ d ks¡J ‚t d%dƒ}ˆ | ‰ˆjˆ j|j   kr¼dks¿J ‚ J ‚tt‡ fd&d„ƒ ˆ "dd¡\}}|jdksØJ ‚|jdksàJ ‚tt‡fd'd„ƒ tt‡ ‡fd(d„ƒ tt|dƒ|dƒƒƒ}|tt|ˆƒdƒtˆtddƒƒƒksJ ‚t|dƒ|dƒkƒ}|t|ˆƒdktˆtddƒƒƒks1J ‚t|dƒ|dƒk ƒdks@J ‚t|dƒ|dƒkƒ}|tt|ˆƒdƒtˆtddƒƒƒks_J ‚t dd)ƒ‰ ttˆ tdƒd ƒdƒtˆ dƒd)ƒ@ ƒtd*ƒt#d+d,ƒ ks„J ‚ttˆ dƒdƒtˆ tdƒd ƒdƒƒdksœJ ‚ttˆ dƒd)ƒtˆ tdƒd ƒdƒƒttˆ tdƒd ƒdƒƒks¿J ‚t ddƒ‰ tˆ tdƒd ƒdk ƒtd-ƒks×J ‚tˆ dƒdk tˆ dƒdƒƒtd.ƒksìJ ‚ttˆ dƒdƒtˆ dƒdƒƒtd.ƒksJ ‚t ddƒ‰ ttˆ dƒdƒtˆ dƒdƒ@ ƒt#ddƒtdƒ ks#J ‚tˆ dƒdkˆ dƒdkƒdttˆ dƒdƒƒ dttˆ dƒdƒƒ  ttˆ dƒdƒƒ ksRJ ‚tˆ dƒdkˆ dƒdkƒdttˆ dƒdƒƒ dttˆ dƒdƒƒ  ksxJ ‚ttˆ dƒdƒtˆ dƒdƒ@ ƒttˆ dƒdƒƒttˆ dƒdƒƒ ksJ ‚ttˆ dƒdƒtˆ dƒdƒƒttˆ dƒdƒƒks¸J ‚dˆ ˆƒ dˆ ˆƒ   ¡ dˆ ˆƒ ksÏJ ‚dˆ ˆƒ dˆ ˆƒ   ¡ ˆ ˆƒ ksåJ ‚dd/ˆ ˆƒ   ¡ d0ˆ ˆƒ ksøJ ‚dˆ ˆƒ d/ ˆ ˆƒ  ¡ d0ˆ ˆƒd  ksJ ‚ˆ ˆƒd ˆ ˆƒd   ¡ ˆ ˆƒd ˆ ˆƒd  ks.J ‚d S )1Nr>   r[   r   út d x yTrü   c                   S   ó
   t ddƒS ©Nr>   r_   ©r+   rF   rF   rF   rG   rH   #  ó   
 z%test_PoissonProcess.<locals>.<lambda>c                      ó   ˆ ˆ S rK   rF   rF   rL   rF   rG   rH   $  rI   c                      ó   ˆ dƒS )NéûÿÿÿrF   rF   rO   rF   rG   rH   %  rI   rU   r€   r•   iñÿÿÿrz   r—   é   iâÿÿÿrD   rú   r`   iúÿÿÿc                	      sB   t tˆ ˆƒdƒtˆ ˆƒdƒ@ tˆt dd¡ƒtˆt dt¡ƒ@ ƒS )NrU   r[   r   rz   )r$   r	   r   r"   ÚLopenr   rF   ©r>   ré   r?   rF   rG   rH   =  s    "ÿr…   i÷ÿÿÿéá   i³  r“   r”   iîÿÿÿéê   r†   c                      s   t ˆ ˆƒdkˆ ˆƒˆ ˆƒ ƒS )NrU   r  rF   r$  rF   rG   rH   L  s    r   c                      s    t ˆ ˆƒd tˆt dt¡ƒƒS )Nr[   rD   )r&   r   r"   r#  r   rF   rL   rF   rG   rH   W  s     rŸ   rT   c                      s   ˆ d S )Nr`   rF   rF   rO   rF   rG   rH   b  rI   c                      s   ˆ   dd¡S )Nr[   rU   )ÚsplitrF   )r~   rF   rG   rH   f  rY   c                      s0   t tˆ ˆƒdƒtˆt dd¡ƒtˆ dƒdƒ@ ƒS )Nr   rD   r[   )r$   r	   r   r"   r#  rF   rL   rF   rG   rH   h  s   0 rŠ   éöÿÿÿl    P¬9 iÅJª r_   éüÿÿÿrw   ri   )$r+   rc   r   r£   r¢   r"   r   Úlamdar   r¡   r1   Údistributionr:   r7   r4   r§   r¦   r  rs   r0   r   r   r   r$   r	   r   r#  ÚRopenr2   r­   r   r   r&   r3   r'  r   )	r  ÚyÚresÚres1Úres2rT   ÚNrS   Úres3rF   )r>   r~   ré   r?   rG   Útest_PoissonProcess  sâ   
ÿ$6ÿ6ÿ ."Hÿÿþ
þ,ÿ,ÿ
þ(8  .ÿ
ÿF4ÿÿ
ÿ*<ÿ<ÿ
þ0ÿ
ÿ.&F
**(*
@0F
&*,
8^LJ6.,&2>r3  c               
      s´  t dƒ‰ ˆ jtjksJ ‚ˆ jtdtƒksJ ‚tddd\‰} }}tˆ ˆƒt	ƒs)J ‚ˆ  
ˆ¡tdtˆƒƒks7J ‚tƒ  ˆ  
ˆ ˆƒ¡ W d   ƒ n1 sLw   Y  ttdd„ ƒ tt‡ ‡fdd„ƒ tt‡ fd	d„ƒ ˆ  ˆ d
ƒˆ dƒ¡ttˆ d
ƒˆ dƒftdƒtˆ d
ƒd
  d ƒ tˆ dƒd
  d ƒ dt  ƒƒks J ‚ˆ  dd¡ttˆ dƒˆ dƒftdƒtˆ dƒd
  d ƒ tˆ dƒd
  d ƒ dt  ƒƒksÑJ ‚tˆ ˆƒdk ƒ ¡ tdtd
ƒ d
tˆƒ  ƒd
 tdƒd
  ksóJ ‚tˆ ˆƒd
ktˆt dd¡ƒƒ ¡ tdƒd
 ttd
ƒd
 ƒd
  ksJ ‚tˆ ˆƒdkˆ | ƒdk@ ˆ |ƒd
k@ ˆ |ƒdk@ tˆt dd¡ƒt| t dd
¡ƒ@ t|t d
d¡ƒ@ t|t dd¡ƒ@ ƒ ¡ dttd
ƒd
 ƒ dttd
ƒƒ  dtdtd
ƒ d
 ƒ  dtd
td
ƒ ƒ  d ks„J ‚tˆ ˆƒd
k ˆ | ƒdk@ tˆt dd
¡ƒt| t d
d¡ƒ@ ƒtˆ | ƒdkˆ ˆƒd
k @ t| t d
d¡ƒtˆt dd
¡ƒ@ ƒksÅJ ‚tttˆ ˆƒdk ˆ | ƒdk@ ƒtˆt d
d¡ƒt| t dd¡ƒ@ ƒ ¡ ƒdksïJ ‚t ˆ ˆƒƒdksúJ ‚t |ˆ ˆƒˆ | ƒ  ˆ ˆƒd
 ˆ | ƒd
   tˆt dd¡ƒt| t dd
¡ƒ@ ƒt!|ˆ | ƒˆ ˆƒ  ˆ | ƒd
 ˆ ˆƒd
   t| t dd
¡ƒtˆt dd¡ƒ@ ƒksOJ ‚t ˆ ˆƒ|t ˆ dƒƒ  ƒdksbJ ‚d
ˆ ˆƒ dˆ ˆƒ   ¡ dˆ ˆƒ ksyJ ‚d
ˆ ˆƒ dˆ ˆƒ   ¡ ˆ ˆƒ ksJ ‚d
dˆ ˆƒ   ¡ dˆ ˆƒ ks¢J ‚d
ˆ ˆƒ d ˆ ˆƒ  ¡ dˆ ˆƒd
  ks»J ‚ˆ ˆƒd
 ˆ ˆƒd   ¡ ˆ ˆƒd ˆ ˆƒd
  ksØJ ‚d S )Nr>   r   r  Trü   c                   S   r  r  r  rF   rF   rF   rG   rH   —  r  z$test_WienerProcess.<locals>.<lambda>c                      r  rK   rF   rF   rL   rF   rG   rH   ˜  rI   c                      r   )Nrù   rF   rF   rO   rF   rG   rH   ™  rI   rU   r[   r€   rz   r—   r”   é   rD   r“   r‚   r`   z--(1 - erf(3*sqrt(2)/2))*(2 - erfc(5/2))/4 + 1rw   ri   )"r,   rc   r   ÚRealsr¢   r"   r   r   r¡   r1   r+  r;   r   r7   r4   r§   r¦   r  rs   r0   r   r   r   r$   r­   r   r   r#  r,  r2   r{   r   r&   r3   )ré   r  r-  rF   rL   rG   Útest_WienerProcess  sx   ÿL
ÿL
ÿD,ÿ0"ÿÿÿR
ý(ÿ"ÿ
ÿ.ÿÿ
þ<ÿ,"ÿ
ÿ&.,&2>r6  c               	      sx  t ddd\‰} }}}}td||ƒ‰ tt‡ ‡fdd„ƒ tt‡ fdd„ƒ tˆ ˆƒtƒs.J ‚ˆ jtdt	ƒks8J ‚ˆ  
ˆ¡t|ˆ d	| ƒksHJ ‚tƒ  ˆ  
ˆ ˆƒ¡ W d   ƒ n1 s]w   Y  ˆ  d
ˆ dƒ¡ttˆ d
ƒˆ dƒf|d|  t| ˆ dƒ ƒ t| ˆ d
ƒ ƒ ˆ dƒd| d	   ˆ d
ƒd
| d	   td| ƒtd
| ƒ  ƒƒks¯J ‚tˆ ˆƒƒ|ˆ | ks½J ‚tˆ ˆƒƒ ¡ |ˆ |d  ksÏJ ‚tˆ ˆƒd ˆ | ƒd  ˆ |ƒd  tˆt dd	¡ƒt| t d	d¡ƒ@ t|t dd¡ƒ@ ƒd| | |d | |d   |d d|d   d|  |d   ks"J ‚tˆ ˆƒdktˆt dd¡ƒƒ ¡ d	t|d| ƒt|ƒ  ksDJ ‚dˆ ˆƒ dˆ ˆƒ   ¡ d
ˆ ˆƒ ks[J ‚dˆ ˆƒ dˆ ˆƒ   ¡ ˆ ˆƒ ksqJ ‚ddˆ ˆƒ   ¡ dˆ ˆƒ ks„J ‚dˆ ˆƒ d ˆ ˆƒ  ¡ dˆ ˆƒd  ksJ ‚ˆ ˆƒd ˆ ˆƒd   ¡ ˆ ˆƒd	 ˆ ˆƒd  ksºJ ‚d S )Nzt d x y g lTrü   r>   c                      r  rK   rF   rF   rL   rF   rG   rH   Å  rI   z,test_GammaProcess_symbolic.<locals>.<lambda>c                      r   )Nr_   rF   rF   rO   rF   rG   rH   Æ  rI   r   rD   r`   r[   r”   rU   rz   rw   ri   )r   r-   r4   r¦   r  r¡   r1   rc   r"   r   r+  r<   r7   rs   r0   r   r   r   r&   r(   r­   r   r#  r,  r$   r   )ré   r  r-  ÚgÚlrF   rL   rG   Útest_GammaProcess_symbolicÁ  sD    ÿ\ÿÿÿ$4ÿÿB
þ"
ÿ.,&2>r9  c               	   C   s(  t ddd\} }}}tdddƒ}|jtdtƒksJ ‚|jtdtƒks$J ‚|jdks+J ‚|jdks2J ‚tt	dd	„ ƒ tt	d
d	„ ƒ tt	dd	„ ƒ t
|| ƒdk||ƒdk@ ||ƒdk@ ||ƒdk@ t| t dd¡ƒt|t dd¡ƒ@ t|t dd¡ƒ@ t|t dd¡ƒ@ ƒ ¡ dtdƒ ksŽJ ‚t
t|| ƒdk ||ƒdk@ ƒt| t dd¡ƒt|t dd¡ƒ@ ƒ ¡ dtdƒ dtdƒ d  d ksÃJ ‚t
|| ƒdk|| ƒdk B t| t dd¡ƒƒ ¡ dtdƒ d dtdƒ d  d ksïJ ‚t|| ƒƒd|  ksûJ ‚t|dƒ|t|dƒƒ  ƒd| d ksJ ‚d S )Nr  Trü   r>   rD   rU   r   c                   S   ó   t dddƒS )Nr>   r_   rU   ©r-   rF   rF   rF   rG   rH   ê  rY   z+test_GammaProcess_numeric.<locals>.<lambda>c                   S   r:  )Nr>   r   rù   r;  rF   rF   rF   rG   rH   ë  rY   c                   S   r:  )Nr>   r_   rù   r;  rF   rF   rF   rG   rH   ì  rY   rz   r[   éx   r(  r`   r“   r”   r)  rú   iØ  iøÿÿÿi}ýÿÿrŸ   ém   rù   rŠ   )r   r-   rc   r"   r   r¢   r*  r   r4   r§   r$   r   r#  r­   r   r   r,  r&   )r?   ré   r  r-  r>   rF   rF   rG   Útest_GammaProcess_numericâ  sB   4
ÿÿ
ÿÿþ
ý,ÿ"ÿ."ÿ2r>  N)cÚsympy.concrete.summationsr   Úsympy.core.containersr   Úsympy.core.functionr   Úsympy.core.numbersr   r   r   r   Úsympy.core.relationalr	   r
   r   r   r   r   Úsympy.core.singletonr   Úsympy.core.symbolr   r   Ú(sympy.functions.combinatorial.factorialsr   Ú&sympy.functions.elementary.exponentialr   Ú#sympy.functions.elementary.integersr   Ú(sympy.functions.elementary.miscellaneousr   Ú$sympy.functions.elementary.piecewiser   Ú'sympy.functions.special.error_functionsr   Ú'sympy.functions.special.gamma_functionsr   r   Úsympy.logic.boolalgr   r   Úsympy.matrices.denser   Ú"sympy.matrices.expressions.matexprr   Úsympy.matrices.immutabler   Úsympy.sets.containsr   Úsympy.sets.fancysetsr    Úsympy.sets.setsr!   r"   Úsympy.statsr#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   Úsympy.stats.joint_rvr/   Úsympy.stats.joint_rv_typesr0   Úsympy.stats.rvr1   Ú sympy.stats.symbolic_probabilityr2   r3   Úsympy.testing.pytestr4   r5   r6   r7   Úsympy.externalr8   Úsympy.stats.frv_typesr9   Úsympy.stats.drv_typesr:   Úsympy.stats.crv_typesr;   r<   r=   rï   rø   r
  r  r3  r6  r9  r>  rF   rF   rF   rG   Ú<module>   sT     8  KBKu4!