a
    lº”h›™  ã                   @   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         sT  t dƒ‰tˆjtƒsJ ‚ˆjtjks(J ‚tˆjtƒs8J ‚t	dddd‰tˆˆ t
ƒsXJ ‚tˆd ƒtˆd ƒkstJ ‚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 ]ô\}
‰tˆjtƒsÐJ ‚ˆj||
 ksøˆjt||
 Ž ksøJ ‚ˆjd ksJ ‚ttƒV ttˆd dƒtˆd dƒdd!ttˆd dƒtˆd dƒƒksXJ ‚W d   ƒ n1 sn0    Y  tˆd ƒtˆd ƒks–J ‚tt‡fd"d„ƒ q¶ttd#d„ ƒ t dtdˆdƒƒ‰ˆjtˆd d ƒksèJ ‚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 ]0}|j|jj d ksVJ ‚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sºJ ‚ttˆd  d ƒtˆd dƒƒ|d- |d.  |d/ |d0   |d0 |d1   ksJ ‚tg d2¢g d3¢g d4¢gƒ}ttˆd  dƒtˆd dƒt'ˆ|ƒ@ ƒ $d ¡t%d5d ƒksfJ ‚ttƒ` 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Ö0    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sîJ ‚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 s”J ‚tt)tˆd dƒtˆd dƒtˆd dƒƒtˆd dƒƒd?ttˆd dƒƒ ksêJ ‚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srJ ‚|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 s¨0    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s2J ‚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s J ‚|dTks®J ‚|dUks¼J ‚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s,J ‚|d]ks:J ‚|d1ksHJ ‚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sœJ ‚|&tddgddggƒksºJ ‚|'ttdƒd dgddgdtdƒd ggƒksîJ ‚|(tdtdƒd dgtdƒd dtdƒd gdtdƒd dggƒks8J ‚|$ 2¡ \}%})|%g do¢ksVJ ‚|)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¡ rHJ ‚ˆ 7¡ sVJ ‚tg dU¢g dv¢g dw¢gƒd7 ‰ t dˆ d$‰ˆ 6¡ sŽJ ‚ˆ 7¡ sœJ ‚tddgddggƒd ‰ t dˆ d$‰ˆ 6¡ sÎJ ‚ˆ 7¡ sÜJ ‚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¡ sNJ ‚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sXJ ‚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sZJ ‚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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 s4J ‚tt-ˆd dƒtˆd dƒƒt(dd ƒksbJ ‚ˆ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sÔJ ‚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sDJ ‚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sRJ ‚ttˆd ˆdD ƒtˆd dƒƒttˆdD ˆd ƒtˆd dƒƒksœJ ‚tt+ˆd ˆd ƒtˆd dƒƒtt*ˆd ˆd ƒtˆd dƒƒksæJ ‚ttFˆd‹ ˆd ƒtˆd7 dƒƒttEˆd ˆd‹ ƒtˆd7 dƒƒks0J ‚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sâJ ‚ttFˆ|+ |-ƒtˆ|, |.ƒƒ}2tt*ˆ|+ |-ƒtˆ|, |.ƒƒ}3|2 :|+d7|-d|,d|.di¡ G¡ |3 :|+d7|-d|,d|.di¡ G¡  d’ksdJ ‚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sPJ ‚d S )•NÚXÚtT©ÚpositiveÚintegerr   c                   S   s   t dƒS )Né   ©r#   © rE   rE   úW/var/www/auris/lib/python3.9/site-packages/sympy/stats/tests/test_stochastic_process.pyÚ<lambda>1   ó    z*test_DiscreteMarkovChain.<locals>.<lambda>c                      s   ˆ ˆƒS ©NrE   rE   ©r>   r?   rE   rF   rG   2   rH   c                      s   ˆ   ¡ S rI   )Úcommunication_classesrE   ©r>   rE   rF   rG   3   rH   c                      s   ˆ   ¡ S rI   )Úcanonical_formrE   rL   rE   rF   rG   4   rH   c                      s   ˆ   ¡ S rI   )Ú	decomposerE   rL   rE   rF   rG   5   rH   Ún)rB   ÚMÚYé   rC   )r   rC   c                      s   t ˆ ƒS rI   )r.   rE   )r?   rE   rF   rG   =   rH   c                      s   t tˆ ƒƒS rI   ©Únextr.   rE   rL   rE   rF   rG   >   rH   za Rainy Cloudy Sunny)Úreal)rC   rR   é   ZHelloZWorldF)Zsympifyéÿÿÿÿé   c                 S   s   g | ]}t d |ƒ‘qS ©rQ   rD   )Ú.0Ústate_spacerE   rE   rF   Ú
<listcomp>F   rH   z,test_DiscreteMarkovChain.<locals>.<listcomp>rV   ©Úevaluatec                      s   t tˆ ƒƒS rI   rS   rE   rY   rE   rF   rG   Q   rH   c                   S   s   t dddiƒS )NrQ   rC   rD   rE   rE   rE   rF   rG   S   rH   )Ztrans_probs©ç      à?çš™™™™™É?ç333333Ó?©ra   r`   rb   ©ra   rb   r`   ÚT©r   rC   rR   )ÚOneZTworV   c                      s   ˆ   ˆ d jˆ d j¡S ©NrC   rR   )Újoint_distributionÚsymbolrE   rY   rE   rF   rG   e   rH   ç
×£p=
×?)r   rR   )rC   r   )rC   rC   )rC   rR   )rR   rR   )ç      Ð?ç      è?r   )r   rl   rm   )rm   r   rl   g      Ø?çš™™™™™ñ?é   c                      s,   t ttˆd dƒtˆd dƒtˆˆ ƒ@ ƒƒS )NrV   rR   rC   )Ústrr$   r	   r%   rE   )ÚTSOÚYSrE   rF   rG   q   rH   c                   S   s   t dg d¢tdƒƒS )NÚZrf   rP   )r#   r   rE   rE   rE   rF   rG   r   rH   c                   S   s   t dg d¢tdddƒƒS )Nrs   rf   re   rV   ro   )r#   r   rE   rE   rE   rF   rG   s   rH   c                      s   t ˆ d tˆ d dƒƒS )NrV   rR   é   ©r&   r	   rE   rY   rE   rF   rG   t   rH   c                      s   t ˆ d tˆ d dƒƒS )NrR   rV   rC   ru   rE   rY   rE   rF   rG   u   rH   é   Ú0gš™™™™™¹?)é°   éQ   i|ÿÿÿ)é$   é   iÌÿÿÿ)iÔÿÿÿiÙÿÿÿéÐ   é}   é
   é   é'   é   )Zcondition_set)r   r   r   r   rC   éV   éK   é   iòÿÿÿé   )r   rX   rX   r   r   )r   r   r   r~   r   )rX   r   rX   r   r   )r   r~   r   r   r   )r   rV   r   rV   ro   )TFF)rR   rC   rC   )r   r   r   r~   r   r   )rX   r   rX   r   r   r   )r   ro   r   r   r   rt   )r~   r   r   r   r   r   )r   r~   r   r   r   r   )r   r   r   rX   rX   r   )rC   rR   rX   ro   )TF)
rR   r   r   rV   r   r   rV   rR   r   r   )
r   r~   r   r   r   r   r   r   r   r   )
r   rR   rR   r   r   r   r   r   rV   rV   )
r   r   r   rV   r   r   rt   rC   r   r   )
r   r   r   r   rX   rX   r   r   r   r   )
r   r   r   r   r   r~   r   r   r   r   )
ro   r   r   rX   r   r   rC   r   r   r   )
rR   r   r   ro   r   r   rR   rR   r   r   )
rV   r   rC   r   r   r   r   r   ro   rR   )
r   r   ro   r   r   r   r   r   rV   rV   )r   rV   rt   é   )rR   é   é	   )TTFTF)rC   rC   rC   rC   rC   )rC   r   r   r   r   ÚDW)r   rC   rR   rV   ro   )r   ro   rC   rR   rV   )r   rC   r   r   r   )r   ro   r   r   r   )rC   r   rV   r   r   )r   rR   r   rR   r   )r   r   rV   r   rC   )r   r   r   ro   r   )rR   r   rR   )rC   rC   rR   )r   rC   r   )rC   r   r   )r   r   rC   )rC   rC   r   r   )r   rC   rC   r   )rC   r   r   rC   )r   r   r   rR   )rR   r   r   r   r   )rC   r   rC   r   r   )r   rC   r   rC   r   )r   r   rC   r   rC   )r   r   r   r   rR   é   r‡   rˆ   c                      s   t ˆ d tˆ d dƒƒS rh   ru   rE   rL   rE   rF   rG   >  rH   c                      s   t dddgˆ ƒS )Nr>   r   rC   rD   rE   )re   rE   rF   rG   ?  rH   )ÚAÚBÚCc                      s   t ˆ d tˆ d dƒƒS rh   ru   rE   rL   rE   rF   rG   L  rH   r†   g‘aoÜ?rt   g·—4Fë¨â?é   úa b c dé   ç      ð?rl   r`   )Hr#   Ú
isinstancer[   r    Ú	index_setr   Ú	Naturals0Útransition_probabilitiesr   r   r1   r&   r3   r4   Ú	TypeErrorÚNotImplementedErrorr   r$   r	   Ú
ValueErrorr=   r   r   Ú	enumerater!   Znumber_of_statesr6   ÚUserWarningr2   r   r   r   Úshaper   ri   r/   Úroundr   Úsimplifyr%   r   r   r   r   r'   r   ÚZerorg   Zfundamental_matrixZis_absorbing_chainrM   rN   ÚHalfÚlimiting_distributionZ
is_regularZ
is_ergodicÚdoitZstationary_distributionÚsubsÚcontainsÚtrueZabsorbing_probabilitiesr7   Zabsorbing_probabilitesrK   ÚlistÚzipr(   Úargsr   r
   Úevalf)4ZnzZTZZSZZYZÚsymZrainyZcloudyZsunnyZstate_spacesZchainsÚirs   ZTSZTOZTO1ZTO2ZTO3ZY2ZY3ZTO4ZY4ÚwÚTS1ZY5ZTO6ZY6ZTO7ZY7ZtuplesÚclassesZ
recurrenceZperiodsZTO8ZY8ZTO9ZY9r‰   Zstatesr‹   rŒ   r   Z
new_matrixZY10ÚaÚcÚbÚdÚqueryÚquery_gtÚquery_leÚquery_geÚquery_ltrE   )re   rq   r>   rQ   rr   r?   rF   Útest_DiscreteMarkovChain'   s    ,$þ(
f"þ04.ÿÿ
6T>
"N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   sp  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 slJ ‚qltdg d¢|ƒ}td
ƒD ]}tt|ƒƒ|j	v s J ‚q t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 sLJ ‚qLd S )NZscipyz(SciPy Not installed. Skip sampling testsr   Únumpyr_   rc   rd   rQ   rf   r~   rs   )Ú1rC   r   rC   ro   rV   rR   r>   ÚW)r8   r5   ÚrandomÚseedr   r#   ÚrangerT   r.   r[   r   rŸ   r   r   r   )r»   r¸   re   rQ   Zsampsrs   r>   rº   rE   rE   rF   Útest_sample_stochastic_processp  s0    
þ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ƒV ttˆ dƒdƒtˆ dƒdƒddttˆ dƒdƒtˆ dƒdƒƒksÚJ ‚W d   ƒ n1 sð0    Y  ttˆ dƒdƒtˆ dƒdƒƒtdƒd tj ks0J ‚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s¤J ‚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 sFJ ‚tˆ tddƒƒtˆ dƒdƒƒtdƒ d dttddƒƒ  tj ksJ ‚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sžJ ‚tdtdƒtdƒtdƒg|ƒ}tt|dƒdƒt|dƒdƒƒtdƒd tj ksòJ ‚tt|dƒtdƒƒt|dƒtdƒƒƒtdƒd tj ks0J ‚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sšJ ‚ttt|	d,ƒ|	d-ƒƒt|	d.ƒdƒƒd+ƒtdtt|	d,ƒ|	d-ƒƒt|	d.ƒdƒƒ d+ƒksôJ ‚ttt|	d/ƒ|	d0ƒƒt|	d1ƒdƒƒd+ƒtdtt |	d/ƒ|	d0ƒƒt|	d1ƒdƒƒ d+ƒksNJ ‚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s¨J ‚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
s˜J ‚d S )ENéþÿÿÿrR   rV   éýÿÿÿr   rf   é   rŠ   ro   r?   T©rA   r   rC   Fr]   rW   c                      s*   t tˆ dƒdƒtt tˆ dƒdƒƒtjƒƒS )NrC   r   )r$   r	   r   rŸ   rE   ©ZC2rE   rF   rG   £  rH   z,test_ContinuousMarkovChain.<locals>.<lambda>rX   ÚGrw   r¹   Ú2r~   rˆ   )r[   Zgen_matg
×£p=Š@g…ëQ¸…	@g/Ý$•ë?g¥÷¯=³Ö?gö(\Â­X@g;ßO—Î3@gTã¥›Ä &@g…w¹ˆïÄÔ?gš™™™™™@gÓMbX9$@rt   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÷?rl   r`   )$r   r   rž   ZNegativeOnerg   r   r)   r    r   Z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   )ZT1ZC1ZT2r‹   r?   r¬   ZCS1ZC3rÄ   r   r®   r°   r¯   r±   r²   r³   r´   rµ   r¶   rE   rÃ   rF   Ú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s4J ‚ˆ jdksBJ ‚ˆ jdksPJ ‚t dtddƒdd	d} | jtdd	ƒkszJ ‚t	d
ƒ\}}t
| d | d | d   ƒ|d d d| | d  |d  d|d  d  d| d  ksæJ ‚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sxJ ‚tt|dƒƒ d¡tddƒksœJ ‚tt|dƒƒ d¡dksºJ ‚tt|dƒƒ d¡tddƒksÞJ ‚ttˆ d dƒtˆ d dƒ@ tˆ d dƒ@ tˆ d dƒ@ ƒ d¡tddƒks0J ‚t
dˆ d  ˆ d  ƒ d¡tddƒks^J ‚t
dˆ d  ˆ d  d ƒ d¡tddƒksJ ‚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sdJ ‚tˆ d dkˆ d dkƒ d¡tddƒks”J ‚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sbJ ‚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sJ ‚| ¡ |ks¢J ‚| ¡ ˆ d d ˆ d d  ˆ d d  ksÔJ ‚ˆ dˆ  jˆ dˆ  ˆhksøJ ‚ˆ d jˆ d hksJ ‚ˆ |ˆ  jˆ |ˆ  |ˆhks8J ‚dˆ ˆ  dˆ ˆ    ¡ dˆ ˆ  ksfJ ‚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ã?rC   r   ©ÚpÚsuccessÚfailurer>   rV   ÚHre   zH,TrR   rˆ   ro   zt, xTr@   c                   S   s   t dddddS )Nr>   rn   rC   r   rÈ   )r*   rE   rE   rE   rF   rG   Ý  rH   z'test_BernoulliProcess.<locals>.<lambda>c                      s   ˆ ˆƒS rI   rE   rE   ©rŒ   r?   rE   rF   rG   Þ  rH   c                      s   ˆ d S )NrÀ   rE   rE   ©rŒ   rE   rF   rG   à  rH   gš™™™™™Ù?)r   Tg¸…ëQ¸®?g…ëQ¸…Û?gÍÌÌÌÌÌä?gÍÌÌÌÌÌü?rX   g333333@r~   g¸…ëQ¸î?rŠ   rk   r‘   r†   c                   S   s   t dƒS )NrV   ©r$   rE   rE   rE   rF   rG     rH   c                      s   t ˆ d dkdƒS )NrV   r   rÏ   rE   rÎ   rE   rF   rG     rH   rl   r`   )r*   r[   r!   r“   r   r”   rÊ   rË   r   r   r&   r’   r1   r4   r˜   r—   Ú
IndexErrorri   r0   r   r   r	   r$   rœ   r   r   r9   r   r¡   Zfree_symbolsr   )r>   rÌ   re   ÚxrQ   ÚexprZexpr2Zexpr3rE   rÍ   rF   Útest_BernoulliProcessÍ  s~    `$&&ÿÿ &&ÿÿ$$$R.22@&&0.8&&&&$(62$&.,&2rÓ   c            	   
      sf  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
ƒsbJ ‚ˆ  ˆ¡tdˆ ƒks|J ‚tƒ  ˆ  ˆ ˆƒ¡ W d   ƒ n1 s¦0    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sLJ ‚ˆ  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s6J ‚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sPJ ‚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s2J ‚tttˆ ˆƒdƒˆ ˆƒdk@ ƒtˆt dd¡ƒtˆt dd¡ƒ@ ƒ ¡ dtdƒ dtdƒ  d ksœJ ‚ttˆ ˆƒdƒtˆ ˆƒdƒB tˆt dd¡ƒƒdd tdƒ  ksâJ ‚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sxJ ‚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sLJ ‚tt‡ ‡fd#d„ƒ t ˆ ˆƒˆ ˆƒ ˆ ˆƒˆ ˆƒ  tˆt dd¡ƒtˆt dd¡ƒ@ ƒdks°J ‚t ˆ dƒ| t ˆ dƒƒ  ƒd$|  d ksÞJ ‚t | ˆ dƒ | ƒd|  | ksJ ‚ttˆ dƒdƒtˆ ˆƒdƒ@ tˆt dd¡ƒƒdtdƒ d ksJJ ‚t d%dƒ}ˆ | ‰ˆjˆ j|j   kr~dks„n 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shJ ‚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
sLJ ‚tˆ dƒdkˆ dƒdkƒdttˆ dƒdƒƒ dttˆ dƒdƒƒ  ttˆ dƒdƒƒ k
sªJ ‚tˆ dƒdkˆ dƒdkƒdttˆ dƒdƒƒ dttˆ dƒdƒƒ  k
söJ ‚ttˆ dƒdƒtˆ dƒdƒ@ ƒttˆ dƒdƒƒttˆ dƒdƒƒ ks@J ‚ttˆ dƒdƒtˆ dƒdƒƒttˆ dƒdƒƒksvJ ‚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sbJ ‚d S )1Nr>   rV   r   út d x yTrÂ   c                   S   s
   t ddƒS ©Nr>   rW   ©r+   rE   rE   rE   rF   rG   #  rH   z%test_PoissonProcess.<locals>.<lambda>c                      s   ˆ ˆ S rI   rE   rE   rJ   rE   rF   rG   $  rH   c                      s   ˆ dƒS )NéûÿÿÿrE   rE   rL   rE   rF   rG   %  rH   rR   rt   rˆ   iñÿÿÿro   rŠ   é   iâÿÿÿrC   rÀ   rX   iúÿÿÿc                	      sB   t tˆ ˆƒdƒtˆ ˆƒdƒ@ tˆt dd¡ƒtˆt dt¡ƒ@ ƒS )NrR   rV   r   ro   )r$   r	   r   r"   ÚLopenr   rE   ©r>   r±   r?   rE   rF   rG   =  s   "ÿry   i÷ÿÿÿéá   i³  r†   r‡   iîÿÿÿéê   rz   c                      s   t ˆ ˆƒdkˆ ˆƒˆ ˆƒ ƒS )NrR   rÏ   rE   rÚ   rE   rF   rG   L  rH   rƒ   c                      s    t ˆ ˆƒd tˆt dt¡ƒƒS )NrV   rC   )r&   r   r"   rÙ   r   rE   rJ   rE   rF   rG   W  rH   r   rQ   c                      s   ˆ d S )NrX   rE   rE   rL   rE   rF   rG   b  rH   c                      s   ˆ   dd¡S )NrV   rR   )ÚsplitrE   )rs   rE   rF   rG   f  rH   c                      s0   t tˆ ˆƒdƒtˆt dd¡ƒtˆ dƒdƒ@ ƒS )Nr   rC   rV   )r$   r	   r   r"   rÙ   rE   rJ   rE   rF   rG   h  rH   r~   éöÿÿÿl    P¬9 iÅJª rW   éüÿÿÿrl   r`   )$r+   r[   r   r”   r“   r"   r   Úlamdar   r’   r1   Údistributionr:   r7   r4   r˜   r—   rÐ   ri   r0   r   r   r   r$   r	   r   rÙ   ÚRopenr2   r   r   r   r&   r3   rÝ   r   )	rÑ   ÚyÚresZres1Zres2rQ   ÚNrP   Zres3rE   )r>   rs   r±   r?   rF   Útest_PoissonProcess  sà    
,$6ÿ6ÿ"0"Hÿÿþþ
,ÿ,ÿþ
(8  .ÿÿ
F4ÿÿÿ
*<ÿ<ÿþ
0ÿÿ
.&F
(*(*
@0F
&*,
8^LJ6.,&2ræ   c               
      sº  t dƒ‰ ˆ jtjksJ ‚ˆ jtdtƒks,J ‚tddd\‰} }}tˆ ˆƒt	ƒsRJ ‚ˆ  
ˆ¡tdtˆƒƒksnJ ‚tƒ  ˆ  
ˆ ˆƒ¡ W d   ƒ n1 s˜0    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sBJ ‚ˆ  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s6J ‚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sJ ‚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s¤J ‚t ˆ ˆƒ|t ˆ dƒƒ  ƒdksÊJ ‚d
ˆ ˆƒ dˆ ˆƒ   ¡ dˆ ˆƒ ksøJ ‚d
ˆ ˆƒ dˆ ˆƒ   ¡ ˆ ˆƒ ks$J ‚d
dˆ ˆƒ   ¡ dˆ ˆƒ ksJJ ‚d
ˆ ˆƒ d ˆ ˆƒ  ¡ dˆ ˆƒd
  ks|J ‚ˆ ˆƒd
 ˆ ˆƒd   ¡ ˆ ˆƒd ˆ ˆƒd
  ks¶J ‚d S )Nr>   r   rÔ   TrÂ   c                   S   s
   t ddƒS rÕ   rÖ   rE   rE   rE   rF   rG   —  rH   z$test_WienerProcess.<locals>.<lambda>c                      s   ˆ ˆ S rI   rE   rE   rJ   rE   rF   rG   ˜  rH   c                      s   ˆ dƒS )Nr¿   rE   rE   rL   rE   rF   rG   ™  rH   rR   rV   rt   ro   rŠ   r‡   é   rC   r†   rv   rX   z--(1 - erf(3*sqrt(2)/2))*(2 - erfc(5/2))/4 + 1rl   r`   )"r,   r[   r   ZRealsr“   r"   r   r   r’   r1   rá   r;   r   r7   r4   r˜   r—   rÐ   ri   r0   r   r   r   r$   r   r   r   rÙ   râ   r2   rp   r   r&   r3   )r±   rÑ   rã   rE   rJ   rF   Útest_WienerProcess  sp    ,LÿLÿF,ÿ0"ÿÿÿRý
(ÿ"ÿÿ
.ÿ
þ
<ÿ,"ÿÿ
&.,&2rè   c               	      s~  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spJ ‚ˆ  
ˆ¡t|ˆ d	| ƒksJ ‚tƒ  ˆ  
ˆ ˆƒ¡ W d   ƒ n1 sº0    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sJJ ‚tˆ ˆƒdktˆt dd¡ƒƒ ¡ d	t|d| ƒt|ƒ  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szJ ‚d S )Nzt d x y g lTrÂ   r>   c                      s   ˆ ˆ S rI   rE   rE   rJ   rE   rF   rG   Å  rH   z,test_GammaProcess_symbolic.<locals>.<lambda>c                      s   ˆ dƒS )NrW   rE   rE   rL   rE   rF   rG   Æ  rH   r   rC   rX   rV   r‡   rR   ro   rl   r`   )r   r-   r4   r—   rÐ   r’   r1   r[   r"   r   rá   r<   r7   ri   r0   r   r   r   r&   r(   r   r   rÙ   râ   r$   r   )r±   rÑ   rã   ÚgÚlrE   rJ   rF   Útest_GammaProcess_symbolicÁ  sB     ,\ÿÿÿ&4ÿÿBþ
"ÿ
.,&2rë   c               	   C   s0  t ddd\} }}}tdddƒ}|jtdtƒks4J ‚|jtdtƒksHJ ‚|jdksVJ ‚|jdksdJ ‚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>   rC   rR   r   c                   S   s   t dddƒS )Nr>   rW   rR   ©r-   rE   rE   rE   rF   rG   ê  rH   z+test_GammaProcess_numeric.<locals>.<lambda>c                   S   s   t dddƒS )Nr>   r   r¿   rì   rE   rE   rE   rF   rG   ë  rH   c                   S   s   t dddƒS )Nr>   rW   r¿   rì   rE   rE   rE   rF   rG   ì  rH   ro   rV   éx   rÞ   rX   r†   r‡   rß   rÀ   iØ  iøÿÿÿi}ýÿÿr   ém   r¿   r~   )r   r-   r[   r"   r   r“   rà   r   r4   r˜   r$   r   rÙ   r   r   r   râ   r&   )r?   r±   rÑ   rã   r>   rE   rE   rF   Útest_GammaProcess_numericâ  s@    4
ÿÿ
ÿÿþ
ý
,ÿÿ
."ÿ
rï   N)cZsympy.concrete.summationsr   Zsympy.core.containersr   Zsympy.core.functionr   Zsympy.core.numbersr   r   r   r   Zsympy.core.relationalr	   r
   r   r   r   r   Zsympy.core.singletonr   Zsympy.core.symbolr   r   Z(sympy.functions.combinatorial.factorialsr   Z&sympy.functions.elementary.exponentialr   Z#sympy.functions.elementary.integersr   Z(sympy.functions.elementary.miscellaneousr   Z$sympy.functions.elementary.piecewiser   Z'sympy.functions.special.error_functionsr   Z'sympy.functions.special.gamma_functionsr   r   Zsympy.logic.boolalgr   r   Zsympy.matrices.denser   Z"sympy.matrices.expressions.matexprr   Zsympy.matrices.immutabler   Zsympy.sets.containsr   Zsympy.sets.fancysetsr    Zsympy.sets.setsr!   r"   Zsympy.statsr#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   Zsympy.stats.joint_rvr/   Zsympy.stats.joint_rv_typesr0   Zsympy.stats.rvr1   Z sympy.stats.symbolic_probabilityr2   r3   Zsympy.testing.pytestr4   r5   r6   r7   Zsympy.externalr8   Zsympy.stats.frv_typesr9   Zsympy.stats.drv_typesr:   Zsympy.stats.crv_typesr;   r<   r=   r·   r¾   rÇ   rÓ   ræ   rè   rë   rï   rE   rE   rE   rF   Ú<module>   sR    8  KBKu4!