a
    ¬<bŽ\  ã                   @   sh  d dl mZ d dlmZmZmZ d dlm	Z	m
Z
mZmZ d dlmZmZmZ d dlmZ d dlmZ edddd	\ZZZZZed
dd\ZZdd„ Zdd„ Zdd„ Zdd„ Z dd„ Z!dd„ Z"dd„ Z#dd„ Z$dd„ Z%dd „ Z&d!d"„ Z'd#d$„ Z(d%d&„ Z)d'd(„ Z*d)d*„ Z+d+d,„ Z,d-d.„ Z-d/d0„ Z.d1d2„ Z/d3d4„ Z0d5d6„ Z1d7d8„ Z2d9d:„ Z3d;d<„ Z4d=d>„ Z5d?d@„ Z6dAdB„ Z7dCS )Dé    )ÚSum)ÚdeltaproductÚdeltasummationÚ_extract_delta)ÚEqÚSÚsymbolsÚoo)ÚKroneckerDeltaÚ	PiecewiseÚpiecewise_fold)ÚAnd)Úraisesz	i j k l mT)ÚintegerZfinitezx yF)Zcommutativec                   C   s  t ttddfƒdksJ ‚t ttddfƒtd ks4J ‚t tt tddfƒtt d ksXJ ‚t tt tddfƒtt d ks|J ‚t tttƒtddfƒtttƒks J ‚t ttttƒ tddfƒtd tttƒ ksÐJ ‚t tt tttƒ tddfƒtt d tttƒ ks
J ‚d S ©Né   r   é   )ÚdpÚxÚjÚyÚKDÚiÚk© r   r   úo/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/sympy/concrete/tests/test_delta.pyÚtest_deltaproduct_trivial   s    $$$0r   c                   C   s<  t tttƒtddfƒdksJ ‚t tttƒtddfƒttdƒksBJ ‚t tttƒtddfƒttdƒksfJ ‚t tttƒtddfƒttdƒksŠJ ‚t tttƒtdtfƒttdƒttdƒ ttdƒ ksÂJ ‚t tttƒttdfƒttdƒttdƒ ttdƒ ksúJ ‚t tttƒtttfƒtttƒtttƒ tttd ƒ ks8J ‚d S ©Nr   r   r   é   é   )r   r   r   r   r   Úlr   r   r   r   Útest_deltaproduct_basic   s    $$$88r!   c                   C   sr  t ttttƒ tddfƒdks"J ‚t ttttƒ tddfƒtttdƒ ksNJ ‚t ttttƒ tddfƒtttdƒ kszJ ‚t ttttƒ tddfƒtttdƒ ks¦J ‚t ttttƒ tdtfƒtttdƒ ttdƒ ttdƒ ksæJ ‚t ttttƒ ttdfƒtttdƒ ttdƒ ttdƒ ks(J ‚t ttttƒ tttfƒttttƒ tttƒ tttd ƒ ksnJ ‚d S r   )r   r   r   r   r   r   r    r   r   r   r   Útest_deltaproduct_mul_x_kd    s    ",,,@Br"   c                   C   s¨  t tt tttƒ tddfƒdks&J ‚t tt tttƒ tddfƒtt ttdƒ ksZJ ‚t tt tttƒ tddfƒtt ttdƒ ksŽJ ‚t tt tttƒ tddfƒtt ttdƒ ksÂJ ‚t tt tttƒ tdtfƒtt ttdƒ ttdƒ ttdƒ ksJ ‚t tt tttƒ ttdfƒtt ttdƒ ttdƒ ttdƒ ksVJ ‚t tt tttƒ tttfƒtt tttƒ tttƒ tttd ƒ ks¤J ‚d S r   )r   r   r   r   r   r   r   r    r   r   r   r   Ú test_deltaproduct_mul_add_x_y_kd*   s    &444$ÿ
$ÿ
(ÿr#   c                   C   s¤  t tttƒtttƒ tddfƒdks(J ‚t tttƒtttƒ tddfƒttdƒttdƒ ks`J ‚t tttƒtttƒ tddfƒttdƒttdƒ ks˜J ‚t tttƒtttƒ tddfƒttdƒttdƒ ksÐJ ‚t tttƒtttƒ tdtfƒttdƒttdƒttdƒ  ttdƒttdƒ  ttdƒttdƒ ttdƒ  ttdƒttdƒ ttdƒ  ksdJ ‚t tttƒtttƒ ttdfƒttdƒttdƒttdƒ  ttdƒttdƒ  ttdƒttdƒ ttdƒ  ttdƒttdƒ ttdƒ  ksøJ ‚t tttƒtttƒ tttfƒtttd ƒtttƒtttƒ  tttƒtttƒ  tttƒtttd ƒ tttd ƒ  tttd ƒtttƒ tttd ƒ  ks J ‚d S r   )r   r   r   r   r   r    Úmr   r   r   r   Útest_deltaproduct_add_kd_kd7   s>    (888&ÿÿþþ&ÿÿþþ*ÿÿ$þ$þr%   c                   C   s  t ttttƒtttƒ  tddfƒdks,J ‚t ttttƒtttƒ  tddfƒtttdƒttdƒ  kslJ ‚t ttttƒtttƒ  tddfƒtttdƒttdƒ  ks¬J ‚t ttttƒtttƒ  tddfƒtttdƒttdƒ  ksìJ ‚t ttttƒtttƒ  tdtfƒttdƒtttdƒ ttdƒ  tttdƒ ttdƒ  td ttdƒ ttdƒ ttdƒ  td ttdƒ ttdƒ ttdƒ  ksœJ ‚t ttttƒtttƒ  ttdfƒttdƒtttdƒ ttdƒ  tttdƒ ttdƒ  td ttdƒ ttdƒ ttdƒ  td ttdƒ ttdƒ ttdƒ  ksLJ ‚t ttttƒtttƒ  tttfƒtttd ƒttttƒ tttƒ  ttttƒ tttƒ  td tttd ƒ tttƒ tttd ƒ  td tttƒ tttd ƒ tttd ƒ  ksJ ‚d S r   )r   r   r   r   r   r   r    r$   r   r   r   r   Ú!test_deltaproduct_mul_x_add_kd_kdG   s>    ,@@@*ÿÿ$þ$þ*ÿÿ$þ$þ.ÿÿ,þ,ýr&   c                   C   sn  t tt tttƒtttƒ  tddfƒdks0J ‚t tt tttƒtttƒ  tddfƒtt ttdƒttdƒ  ksxJ ‚t tt tttƒtttƒ  tddfƒtt ttdƒttdƒ  ksÀJ ‚t tt tttƒtttƒ  tddfƒtt ttdƒttdƒ  ks
J ‚t tt tttƒtttƒ  tdtfƒttdƒtt ttdƒ ttdƒ  tt ttdƒ ttdƒ  tt d ttdƒ ttdƒ ttdƒ  tt d ttdƒ ttdƒ ttdƒ  ksÎJ ‚t tt tttƒtttƒ  ttdfƒttdƒtt ttdƒ ttdƒ  tt ttdƒ ttdƒ  tt d ttdƒ ttdƒ ttdƒ  tt d ttdƒ ttdƒ ttdƒ  ks’J ‚t tt tttƒtttƒ  tttfƒtttd ƒtt tttƒ tttƒ  tt tttƒ tttƒ  tt d tttd ƒ tttƒ tttd ƒ  tt d tttƒ tttd ƒ tttd ƒ  ksjJ ‚d S r   )	r   r   r   r   r   r   r   r    r$   r   r   r   r   Ú'test_deltaproduct_mul_add_x_y_add_kd_kdX   sJ    0&ÿ&ÿ&ÿ
.ÿÿ(þ(ý.ÿÿ(þ(ý2ÿÿ0þ0ýr'   c                   C   sž  t tt ttttƒ  tddfƒtt d ttt d  ttdƒ  tt t tt  ttdƒ  tt d t ttdƒ  ks„J ‚t tt ttttƒ  tddfƒtt tttdƒ  ksÀJ ‚t tt ttttƒ  tddfƒtt tttdƒ  ksüJ ‚t tt ttttƒ  tddfƒtt tttdƒ  ks:J ‚t tt ttttƒ  tdtfƒtt t ttt td  t tt tt   tdtkttkƒfdƒ ksªJ ‚t tt ttttƒ  ttdfƒtt t d  ttt tt  t tt dt   tttktdkƒfdƒ ks J ‚t tt ttttƒ  ttt	fƒtt t t	 d  ttt tt  t tt t	t   tttktt	kƒfdƒ ksšJ ‚d S ©Nr   r   r   ©r   Tr   ©
r   r   r   r   r   r   r   r   r   r    r   r   r   r   Ú&test_deltaproduct_add_mul_x_y_mul_x_kdn   s8    *ÿÿÿ
<<> 4þÿ
 4þÿ
 4þÿr+   c                   C   sv  t tttttƒ  tddfƒtt d ttt d  ttdƒ  tt t tt  ttdƒ  tt d t ttdƒ  ks€J ‚t tttttƒ  tddfƒttttdƒ  ks´J ‚t tttttƒ  tddfƒttttdƒ  ksèJ ‚t tttttƒ  tddfƒttttdƒ  ksJ ‚t tttttƒ  tdtfƒtt t ttt td  t tt tt   tdtkttkƒfdƒ ksŠJ ‚t tttttƒ  ttdfƒtt t d  ttt tt  t tt dt   tttktdkƒfdƒ ksüJ ‚t tttttƒ  ttt	fƒtt t t	 d  ttt tt  t tt t	t   tttktt	kƒfdƒ ksrJ ‚d S r(   r*   r   r   r   r   Ú test_deltaproduct_mul_x_add_y_kd…   s8    &ÿÿÿ
4464þÿ
4þÿ
4þÿr,   c                   C   s¸  t ttdtttƒ   tddfƒtt d dt tt d  ttdƒ  dt t t t t ttdƒ  dtt d  t ttdƒ  ksJ ‚t ttdtttƒ   tddfƒttdttdƒ   ksÌJ ‚t ttdtttƒ   tddfƒttdttdƒ   ks
J ‚t ttdtttƒ   tddfƒttdttdƒ   ksHJ ‚t ttdtttƒ   tdtfƒtt t tdtt td   t tt tt   tdtkttkƒfdƒ ks¼J ‚t ttdtttƒ   ttdfƒtt t d  tdtt tt   t tt dt   tttktdkƒfdƒ ks6J ‚t ttdtttƒ   ttt	fƒtt t t	 d  tdtt tt   t tt t	t   tttktt	kƒfdƒ ks´J ‚d S )Nr   r   r   r)   r   r*   r   r   r   r   Ú#test_deltaproduct_mul_x_add_y_twokdœ   s8    *ÿ ÿÿ
<>> 8þÿ
 8þÿ
 8þÿr-   c                   C   sì  t tt ttttƒ  tddfƒtt t d tt tt t d  ttdƒ  tt t tt d  t ttdƒ  tt t d tt  ttdƒ  ks J ‚t tt ttttƒ  tddfƒtt tttdƒ  ksÜJ ‚t tt ttttƒ  tddfƒtt tttdƒ  ksJ ‚t tt ttttƒ  tddfƒtt tttdƒ  ksXJ ‚t tt ttttƒ  tdtfƒtt t t ttt t td  tt  tt t tt   tdtkttkƒfdƒ ksØJ ‚t tt ttttƒ  ttdfƒtt t t d  ttt t tt  tt  tt t dt   tttktdkƒfdƒ ks^J ‚t tt ttttƒ  ttt	fƒtt t t t	 d  ttt t tt  tt  tt t t	t   tttktt	kƒfdƒ ksèJ ‚d S r(   r*   r   r   r   r   Ú&test_deltaproduct_mul_add_x_y_add_y_kd³   sD    . ÿ$þ ý
<>> .ÿýÿ
 .ÿýÿ
 .ÿýÿr.   c                   C   s   t ttttƒ ttttƒ  tddfƒttdƒtttƒt  tttƒt t d  ttdƒtttƒt  t tttƒt d  t  ttdƒtttƒt t d  tttƒt   tttƒt t d  ksÐJ ‚t ttttƒ ttttƒ  tddfƒttttƒ tttdƒ  ksJ ‚t ttttƒ ttttƒ  tddfƒttttƒ tttdƒ  ksdJ ‚t ttttƒ ttttƒ  tddfƒttttƒ tttdƒ  ks®J ‚t ttttƒ ttttƒ  tdtfƒttttƒ t t tttttƒ t td  ttttƒ  ttttƒ t t t   tdtkttkƒfdƒ ksNJ ‚t ttttƒ ttttƒ  ttdfƒttttƒ t dt  tttttƒ t tt  ttttƒ  ttttƒ t t d   tttktdkƒfdƒ ksòJ ‚t ttttƒ ttttƒ  ttt	fƒttttƒ t t t	 d  tttttƒ t tt  ttttƒ  ttttƒ t t t	   tttktt	kƒfdƒ ksœJ ‚d S r(   )
r   r   r   r   r   r   r   r   r   r    r   r   r   r   Ú'test_deltaproduct_mul_add_x_kd_add_y_kdÏ   s`    &,0ÿ,þýÿ&ÿ
&ÿ
&ÿ
&&ÿÿýÿ
&&ÿÿýÿ
& &ÿÿýÿr/   c                   C   s  t ttddfƒdksJ ‚t ttddfƒdt ks4J ‚t tt tddfƒdtt  ksXJ ‚t tt tddfƒdt t ks|J ‚t tttƒtddfƒdtttƒ ks¤J ‚t ttttƒ tddfƒdt tttƒ ksÔJ ‚t tt tttƒ tddfƒdt t tttƒ ksJ ‚d S r   )Údsr   r   r   r   r   r   r   r   r   r   Útest_deltasummation_trivialï   s    $$(0r1   c                  C   s@  t dddd} tt| dƒ| ddfƒdks,J ‚tttd td ƒtt tfƒtttd td ƒtt tfƒkspJ ‚ttttƒt	dtktdkƒfdƒttttƒtttƒ tddfƒ  krÚttttƒtttƒ tddfƒksàn J ‚ttttƒtt tfƒdksJ ‚ttttƒtdtfƒtdt
jtkfdƒks2J ‚ttttƒtddfƒtdt	dtktdkƒfdƒksjJ ‚tttttƒ tttƒ tt tfƒttttƒ ks¤J ‚tttttƒ tt tfƒtksÊJ ‚tttttƒ tt tfƒtksðJ ‚tttddfƒdt ksJ ‚ttt tttƒ tt tfƒdt ks<J ‚d S )	NÚnT)r   Znonzeror   r   r   r   r)   )r   r0   r   r   r   r	   r   r   r   r   r   ZZeror   )r2   r   r   r   Ú#test_deltasummation_basic_numericalù   s(    ÿ ÿþ"0ÿ
:&&r3   c                   C   sj  t tttƒtddfƒtdtdtktdkƒfdƒks6J ‚t tttƒtddfƒtdttdƒfdƒksdJ ‚t tttƒtddfƒtdttdƒfdƒks’J ‚t tttƒtddfƒtdttdƒfdƒksÀJ ‚t tttƒtdtfƒtdtdtkttkƒfdƒksöJ ‚t tttƒttdfƒtdtttktdkƒfdƒks.J ‚t tttƒtttfƒtdtttkttkƒfdƒksfJ ‚d S ©Nr   r   r)   r   )	r0   r   r   r   r   r   r   r   r    r   r   r   r   Ú"test_deltasummation_basic_symbolic  s    ÿ...ÿÿ
ÿr5   c                   C   sˆ  t ttttƒ tddfƒtttdtktdkƒfdƒks:J ‚t ttttƒ tddfƒttttdƒfdƒkslJ ‚t ttttƒ tddfƒttttdƒfdƒksžJ ‚t ttttƒ tddfƒttttdƒfdƒksÐJ ‚t ttttƒ tdtfƒtttdtkttkƒfdƒksJ ‚t ttttƒ ttdfƒtttttktdkƒfdƒksHJ ‚t ttttƒ ttt	fƒtttttktt	kƒfdƒks„J ‚d S r4   )
r0   r   r   r   r   r   r   r   r   r    r   r   r   r   Útest_deltasummation_mul_x_kd  s    ÿ222ÿ
ÿ
ÿr6   c                   C   sÀ  t tt tttƒ tddfƒttt tdtktdkƒfdƒksBJ ‚t tt tttƒ tddfƒttt ttdƒfdƒks|J ‚t tt tttƒ tddfƒttt ttdƒfdƒks¶J ‚t tt tttƒ tddfƒttt ttdƒfdƒksðJ ‚t tt tttƒ tdt	fƒttt tdtktt	kƒfdƒks4J ‚t tt tttƒ tt	dfƒttt tt	tktdkƒfdƒksxJ ‚t tt tttƒ tt	t
fƒttt tt	tktt
kƒfdƒks¼J ‚d S r4   ©r0   r   r   r   r   r   r   r   r   r   r    r   r   r   r   Ú"test_deltasummation_mul_add_x_y_kd,  s*    ÿÿÿÿÿ
ÿ
ÿr8   c                	   C   s~  t tttƒtttƒ tddfƒttdtdtktdkƒfdƒtdtdtktdkƒfdƒ ƒks`J ‚t tttƒtttƒ tddfƒttdttdƒfdƒtdttdƒfdƒ ƒks°J ‚t tttƒtttƒ tddfƒttdttdƒfdƒtdttdƒfdƒ ƒksJ ‚t tttƒtttƒ tddfƒttdttdƒfdƒtdttdƒfdƒ ƒksTJ ‚t tttƒtttƒ tdt	fƒttdtdtktt	kƒfdƒtdtdtktt	kƒfdƒ ƒks¶J ‚t tttƒtttƒ tt	dfƒttdtt	tktdkƒfdƒtdtt	tktdkƒfdƒ ƒksJ ‚t tttƒtttƒ tt	t
fƒttdtt	tktt
kƒfdƒtdtt	tktt
kƒfdƒ ƒkszJ ‚d S r4   )r0   r   r   r   r   r   r   r   r   r    r$   r   r   r   r   Útest_deltasummation_add_kd_kd=  sF     ÿÿ
 ÿÿ
 ÿÿ ÿÿ ÿÿ ÿÿ ÿÿr9   c                	   C   sš  t ttttƒ tttƒ tddfƒttttdtktdkƒfdƒtdtdtktdkƒfdƒ ƒksdJ ‚t ttttƒ tttƒ tddfƒtttt	tdƒfdƒtdt	tdƒfdƒ ƒks¸J ‚t ttttƒ tttƒ tddfƒtttt	tdƒfdƒtdt	tdƒfdƒ ƒksJ ‚t ttttƒ tttƒ tddfƒtttt	tdƒfdƒtdt	tdƒfdƒ ƒksdJ ‚t ttttƒ tttƒ tdt
fƒttttdtktt
kƒfdƒtdtdtktt
kƒfdƒ ƒksÊJ ‚t ttttƒ tttƒ tt
dfƒttttt
tktdkƒfdƒtdtt
tktdkƒfdƒ ƒks0J ‚t ttttƒ tttƒ tt
tfƒttttt
tkttkƒfdƒtdtt
tkttkƒfdƒ ƒks–J ‚d S r4   ©r0   r   r   r   r   r   r   r   r   r   r    r$   r   r   r   r   Ú#test_deltasummation_add_mul_x_kd_kdU  sF    $ÿÿ
$ÿÿ
$ÿÿ$ÿÿ$ÿÿ$ÿÿ$ÿÿr;   c                	   C   sš  t ttttƒtttƒ  tddfƒttttdtktdkƒfdƒtttdtktdkƒfdƒ ƒksdJ ‚t ttttƒtttƒ  tddfƒtttt	tdƒfdƒttt	tdƒfdƒ ƒks¸J ‚t ttttƒtttƒ  tddfƒtttt	tdƒfdƒttt	tdƒfdƒ ƒksJ ‚t ttttƒtttƒ  tddfƒtttt	tdƒfdƒttt	tdƒfdƒ ƒksdJ ‚t ttttƒtttƒ  tdt
fƒttttdtktt
kƒfdƒtttdtktt
kƒfdƒ ƒksÊJ ‚t ttttƒtttƒ  tt
dfƒttttt
tktdkƒfdƒtttt
tktdkƒfdƒ ƒks0J ‚t ttttƒtttƒ  tt
tfƒttttt
tkttkƒfdƒtttt
tkttkƒfdƒ ƒks–J ‚d S r4   r:   r   r   r   r   Ú#test_deltasummation_mul_x_add_kd_kdm  sF    $ÿÿ
$ÿÿ
$ÿÿ$ÿÿ$ÿÿ$ÿÿ$ÿÿr<   c                	   C   sî  t tt tttƒtttƒ  tddfƒtttt t	dtktdkƒfdƒttt t	dtktdkƒfdƒ ƒkspJ ‚t tt tttƒtttƒ  tddfƒtttt t
tdƒfdƒttt t
tdƒfdƒ ƒksÐJ ‚t tt tttƒtttƒ  tddfƒtttt t
tdƒfdƒttt t
tdƒfdƒ ƒks2J ‚t tt tttƒtttƒ  tddfƒtttt t
tdƒfdƒttt t
tdƒfdƒ ƒks”J ‚t tt tttƒtttƒ  tdtfƒtttt t	dtkttkƒfdƒttt t	dtkttkƒfdƒ ƒksJ ‚t tt tttƒtttƒ  ttdfƒtttt t	ttktdkƒfdƒttt t	ttktdkƒfdƒ ƒksxJ ‚t tt tttƒtttƒ  tttfƒtttt t	ttkttkƒfdƒttt t	ttkttkƒfdƒ ƒksêJ ‚d S r4   )r0   r   r   r   r   r   r   r   r   r   r   r    r$   r   r   r   r   Ú)test_deltasummation_mul_add_x_y_add_kd_kd…  sF    (ÿÿ
(ÿÿ
(ÿÿ(ÿÿ(ÿÿ(ÿÿ(ÿÿr=   c                   C   sj  t tt ttttƒ  tddfƒtdt t t tdtktdkƒfdt t dfƒksZJ ‚t tt ttttƒ  tddfƒttt t ttdƒftt dfƒks¤J ‚t tt ttttƒ  tddfƒttt t ttdƒftt dfƒksîJ ‚t tt ttttƒ  tddfƒttt t ttdƒftt dfƒks:J ‚t tt ttttƒ  tdt	fƒtt	t t t tdtktt	kƒft	t t dfƒks–J ‚t tt ttttƒ  tt	dfƒtdt	 t t t tt	tktdkƒfdt	 t t dfƒksúJ ‚t tt ttttƒ  tt	t
fƒtt
t	 d t t t tt	tktt
kƒft
t	 d t t dfƒksfJ ‚d S ©Nr   r   Tr   r   r7   r   r   r   r   Ú(test_deltasummation_add_mul_x_y_mul_x_kd  s*     2ÿ "ÿ "ÿ "ÿ
 2ÿ
 :ÿ
">ÿr?   c                   C   sN  t tttttƒ  tddfƒtdt t t tdtktdkƒfdt t dfƒksVJ ‚t tttttƒ  tddfƒttt t ttdƒftt dfƒksœJ ‚t tttttƒ  tddfƒttt t ttdƒftt dfƒksâJ ‚t tttttƒ  tddfƒttt t ttdƒftt dfƒks*J ‚t tttttƒ  tdt	fƒtt	t t t tdtktt	kƒft	t t dfƒks‚J ‚t tttttƒ  tt	dfƒtdt	 t t t tt	tktdkƒfdt	 t t dfƒksâJ ‚t tttttƒ  tt	t
fƒtt
t	 d t t t tt	tktt
kƒft
t	 d t t dfƒksJJ ‚d S r>   r7   r   r   r   r   Ú"test_deltasummation_mul_x_add_y_kd®  s*    2ÿ"ÿ"ÿ"ÿ
2ÿ
:ÿ
>ÿr@   c                   C   s†  t ttdtttƒ   tddfƒtdt t dt  tdtktdkƒfdt t dfƒks^J ‚t ttdtttƒ   tddfƒttt dt  ttdƒftt dfƒks¬J ‚t ttdtttƒ   tddfƒttt dt  ttdƒftt dfƒksúJ ‚t ttdtttƒ   tddfƒttt dt  ttdƒftt dfƒksJJ ‚t ttdtttƒ   tdt	fƒtt	t t dt  tdtktt	kƒft	t t dfƒksªJ ‚t ttdtttƒ   tt	dfƒtdt	 t t dt  tt	tktdkƒfdt	 t t dfƒksJ ‚t ttdtttƒ   tt	t
fƒtt
t	 d t t dt  tt	tktt
kƒft
t	 d t t dfƒks‚J ‚d S )Nr   r   r   Tr   r7   r   r   r   r   Ú%test_deltasummation_mul_x_add_y_twokd¿  s*     6ÿ &ÿ &ÿ &ÿ
 6ÿ
":ÿ"BÿrA   c                   C   sÀ  t tt ttttƒ  tddfƒtdtt  t t t tdtktdkƒfdtt  t dfƒksfJ ‚t tt ttttƒ  tddfƒttt t t t ttdƒftt t dfƒks¼J ‚t tt ttttƒ  tddfƒttt t t t ttdƒftt t dfƒksJ ‚t tt ttttƒ  tddfƒttt t t t ttdƒftt t dfƒkslJ ‚t tt ttttƒ  tdt	fƒtt	tt  t t t tdtktt	kƒft	tt  t dfƒksÔJ ‚t tt ttttƒ  tt	dfƒtdt	 tt  t t t tt	tktdkƒfdt	 tt  t dfƒksDJ ‚t tt ttttƒ  tt	t
fƒtt
t	 d tt  t t t tt	tktt
kƒft
t	 d tt  t dfƒks¼J ‚d S r>   r7   r   r   r   r   Ú(test_deltasummation_mul_add_x_y_add_y_kdÐ  s.    ":ÿ
 .ÿ .ÿ
 .ÿ
":ÿ",þ"0þrB   c                   C   sê  t ttttƒ ttttƒ  tddfƒtttttƒt t	dtktdkƒfdƒdtttƒt  t  ƒkslJ ‚t ttttƒ ttttƒ  tddfƒtttttƒt t
tdƒfdƒtttƒt t  ƒksÌJ ‚t ttttƒ ttttƒ  tddfƒtttttƒt t
tdƒfdƒtttƒt t  ƒks.J ‚t ttttƒ ttttƒ  tddfƒtttttƒt t
tdƒfdƒtttƒt t  ƒksJ ‚t ttttƒ ttttƒ  tdtfƒtttttƒt t	dtkttkƒfdƒttttƒt  t  ƒksþJ ‚t ttttƒ ttttƒ  ttdfƒtttttƒt t	ttktdkƒfdƒdt tttƒt  t  ƒkspJ ‚t ttttƒ ttttƒ  tttfƒtttttƒt t	ttkttkƒfdƒtt d tttƒt  t  ƒksæJ ‚d S )Nr   r   r)   r   r   )r0   r   r   r   r   r   r   r   r   r   r   r    r   r   r   r   Ú)test_deltasummation_mul_add_x_kd_add_y_kdã  sF    ($ÿÿ
(ÿÿ
(ÿÿ(ÿÿ($ÿÿ($ÿÿ($ÿÿrC   c                   C   s   t tdd„ ƒ d S )Nc                   S   s   t tttƒtttƒ tƒS )N)r   r   r   r   r   r    r   r   r   r   Ú<lambda>ü  ó    z$test_extract_delta.<locals>.<lambda>)r   Ú
ValueErrorr   r   r   r   Útest_extract_deltaû  s    rG   N)8Zsympy.concreter   Zsympy.concrete.deltar   r   r   r0   r   Z
sympy.corer   r   r   r	   Zsympy.functionsr
   r   r   r   Zsympy.logicr   Zsympy.testing.pytestr   r   r   r   r    r$   r   r   r   r!   r"   r#   r%   r&   r'   r+   r,   r-   r.   r/   r1   r3   r5   r6   r8   r9   r;   r<   r=   r?   r@   rA   rB   rC   rG   r   r   r   r   Ú<module>   sD   


 
