o
    à8VaŽ\  ã                   @   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sJ ‚t tt tddfƒtt d ks,J ‚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sPJ ‚t ttttƒ tddfƒtd tttƒ kshJ ‚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   úA/usr/lib/python3/dist-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s!J ‚t tttƒtddfƒttdƒks3J ‚t tttƒtddfƒttdƒksEJ ‚t tttƒtdtfƒttdƒttdƒ ttdƒ ksaJ ‚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s›J ‚d S ©Nr   r   r   é   é   )r   r   r   r   r   Úlr   r   r   r   Útest_deltaproduct_basic   s   $$$88@r!   c                   C   sn  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s'J ‚t ttttƒ tddfƒtttdƒ ks=J ‚t ttttƒ tddfƒtttdƒ ksSJ ‚t ttttƒ tdtfƒtttdƒ ttdƒ ttdƒ kssJ ‚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sµJ ‚d S r   )r   r   r   r   r   r   r    r   r   r   r   Útest_deltaproduct_mul_x_kd    s   ",,,@@H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s-J ‚t tt tttƒ tddfƒtt ttdƒ ksGJ ‚t tt tttƒ tddfƒtt ttdƒ ksaJ ‚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s©J ‚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s0J ‚t tttƒtttƒ tddfƒttdƒttdƒ ksLJ ‚t tttƒtttƒ tddfƒttdƒttdƒ kshJ ‚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s±J ‚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sNJ ‚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s6J ‚t ttttƒtttƒ  tddfƒtttdƒttdƒ  ksVJ ‚t ttttƒtttƒ  tddfƒtttdƒttdƒ  ksvJ ‚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s%J ‚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   sj  t 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ƒ  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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sGJ ‚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s³J ‚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sBJ ‚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sKJ ‚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   sp  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sZJ ‚t tttttƒ  tddfƒttttdƒ  kstJ ‚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s6J ‚d S r(   r*   r   r   r   r   Ú test_deltaproduct_mul_x_add_y_kd…   s8   &ÿÿ
ÿ444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sHJ ‚t ttdtttƒ   tddfƒttdttdƒ   ksfJ ‚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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sJ ‚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sWJ ‚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sPJ ‚t tt ttttƒ  tddfƒtt tttdƒ  ksnJ ‚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 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sqJ ‚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shJ ‚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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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s$J ‚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svJ ‚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sJ ‚t tt tddfƒdtt  ks,J ‚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sRJ ‚t ttttƒ tddfƒdt tttƒ ksjJ ‚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   s6  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s8J ‚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rnttttƒtttƒ tddfƒksqJ ‚ J ‚ttttƒtt tfƒdksJ ‚ttttƒtdtfƒtdt
jtkfdƒks˜J ‚ttttƒtddfƒtdt	dtktdkƒfdƒks³J ‚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(   ÿ ÿþ .ÿ8$$2r3   c                   C   sf  t tttƒtddfƒtdtdtktdkƒfdƒksJ ‚t tttƒtddfƒtdttdƒfdƒks2J ‚t tttƒtddfƒtdttdƒfdƒksIJ ‚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s±J ‚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s6J ‚t ttttƒ tddfƒttttdƒfdƒksOJ ‚t ttttƒ tddfƒttttdƒfdƒkshJ ‚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s¢J ‚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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dfƒttt ttdƒfdƒksxJ ‚t tt tttƒ tdt	fƒ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 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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   sx  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s0J ‚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sXJ ‚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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s:J ‚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s2J ‚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s°J ‚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sJ ‚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sHJ ‚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  óF   $ÿ
ÿ$ÿ
ÿ$ÿ
ÿ$ÿ
ÿ$ÿ
ÿ$ÿÿ$ÿÿ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s2J ‚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s°J ‚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sJ ‚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sHJ ‚d S r4   r:   r   r   r   r   Ú#test_deltasummation_mul_x_add_kd_kdm  r<   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s8J ‚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shJ ‚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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s:J ‚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ssJ ‚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   sd  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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sRJ ‚t tt ttttƒ  tddfƒttt t ttdƒftt dfƒkswJ ‚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s0J ‚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   sH  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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sNJ ‚t tttttƒ  tddfƒttt t ttdƒftt dfƒksqJ ‚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s"J ‚d S r?   r7   r   r   r   r   Ú"test_deltasummation_mul_x_add_y_kd®  s*   2ÿ"ÿ"ÿ"ÿ2ÿ:ÿ>ÿrA   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sVJ ‚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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ÿrB   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s3J ‚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s´J ‚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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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þrC   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s6J ‚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sfJ ‚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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s5J ‚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spJ ‚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   ($ÿ
ÿ(ÿ
ÿ(ÿ
ÿ(ÿ
ÿ($ÿ
ÿ($ÿÿ($ÿÿrD   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>ü  s    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@   rA   rB   rC   rD   rG   r   r   r   r   Ú<module>   sF    


 
