o
    GZŽhâ  ã                   @   s  d dl mZmZmZmZ d dlmZmZ d dlm	Z	 d dl
mZmZ d dlmZmZmZmZ d dlmZ d dlmZ d dlmZmZ d d	lmZ d d
lmZ d dlmZ d dlm Z  d dl!m"Z" edƒ\Z#Z$edddZ%edddZ&edddZ'dd„ Z(dd„ Z)dd„ Z*dS )é    )ÚIÚnanÚooÚpi)ÚEqÚNe)ÚS)ÚSymbolÚsymbols)ÚadjointÚ	conjugateÚsignÚ	transpose)Úsqrt)Ú	Piecewise)Ú
DiracDeltaÚ	Heaviside)ÚSingularityFunction)Úsignsimp)Úraises)Ú	unchanged)ÚArgumentIndexErrorzx yÚtT)ZnonzeroÚj)ZpositiveÚk)Únegativec                   C   s(  t dƒdksJ ‚t dƒdksJ ‚t t ƒdksJ ‚t ddƒdks"J ‚t tdƒt tƒks-J ‚t tƒdks5J ‚t tƒdks=J ‚t tƒdksEJ ‚t tƒtu sMJ ‚t dƒjt u sVJ ‚t tƒjt u s_J ‚tt tƒƒt tƒkskJ ‚tt tt	 ƒƒt tt	 ƒks{J ‚t
t tƒƒt tƒks‡J ‚t
t tt	 ƒƒt tt	 ƒks—J ‚tt tƒƒt tƒks£J ‚tt tt	 ƒƒt tt	 ƒks³J ‚t tƒ t¡t tdƒksÁJ ‚t tdƒ t¡t tdƒksÐJ ‚t tƒ t¡du sÛJ ‚t dt ƒ t¡du sèJ ‚t td ƒ t¡d	u sõJ ‚t ttƒƒ t¡d	u sJ ‚t tƒ t	¡d	u sJ ‚t tt	 ƒjdtd
t tƒtt	ƒ ks%J ‚t tt	 ƒjdt	d
t t	ƒttƒ ks;J ‚t td t	 ƒjdtd
t td t	 ƒksSJ ‚t t	ƒjdtd
t t	ƒkscJ ‚t td td  td  ƒjdtd
t td ƒd t td ƒ t td ƒd  ksJ ‚t dt ƒt tƒksœJ ‚t tƒt t ƒks¨J ‚t t dƒt tdƒks¶J ‚t t dƒt tdƒ ksÅJ ‚t t t ƒt tt ƒksÕJ ‚t tt	 ƒt t	t ƒksäJ ‚tt tt	 ƒt t	t ƒ ƒdks÷J ‚t tt	 ƒjdtd
t tƒtt	ƒ ksJ ‚t tt	 ƒjdt	d
t t	ƒttƒ ks#J ‚t td t	 ƒjdtd
t td t	 ƒks;J ‚t t	ƒjdtd
t t	ƒksKJ ‚t td td  td  ƒjddt td ƒd t td ƒ t td ƒd  ksvJ ‚ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ d S )Né   r   gffffff@é   é   é   Té   F)Ú
diracdeltaZwrt)r!   c                   S   ó   t tƒ d¡S ©Nr   )r   ÚxÚfdiff© r&   r&   úa/var/www/auris/lib/python3.10/site-packages/sympy/functions/special/tests/test_delta_functions.pyÚ<lambda>P   ó    z!test_DiracDelta.<locals>.<lambda>c                   S   s
   t tdƒS )Néÿÿÿÿ)r   r$   r&   r&   r&   r'   r(   Q   s   
 c                   S   ó   t tƒS ©N©r   r   r&   r&   r&   r'   r(   R   ó    c                   S   ó   t ddt  ƒS ©Nr   r    r-   r&   r&   r&   r'   r(   S   ó    )r   r   r$   Úir   r   r   Úfuncr   Úyr   r   ÚdiffZ	is_simpler   ÚexpandÚabsr   r   r   r   Ú
ValueErrorr&   r&   r&   r'   Útest_DiracDelta   sb      ,,0 $*
ÿ &,,0 "*
ÿr9   c                  C   s  t dƒdksJ ‚t dƒdksJ ‚t dƒtjksJ ‚t dtƒtks"J ‚tt ttƒs*J ‚t dtƒtks3J ‚t tdƒ} t ttjƒ}t tdƒ}| j| j  krRtdfksUJ ‚ J ‚|j|j  krdtdfksgJ ‚ J ‚|jttjfksqJ ‚|jtfksyJ ‚tt tƒƒt tƒks…J ‚tt tt	 ƒƒt tt	 ƒks•J ‚t
t tƒƒt tƒks¡J ‚t
t tt	 ƒƒt tt	 ƒks±J ‚tt tƒƒt tƒks½J ‚tt tt	 ƒƒt tt	 ƒksÍJ ‚t tƒ t¡ttƒksÚJ ‚t tt ƒjdu såJ ‚t tt ƒjdu sðJ ‚ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ d S )	Néûÿÿÿr   r   Tc                   S   r"   r#   )r   r$   r%   r&   r&   r&   r'   r(   s   r)   z test_heaviside.<locals>.<lambda>c                   S   r+   r,   ©r   r   r&   r&   r&   r'   r(   t   r.   c                   S   r/   r0   r;   r&   r&   r&   r'   r(   u   r1   )r   r   ÚHalfr$   r   r   ÚargsZpargsr   r4   r   r   r5   r   r   Zis_Functionr   r   r8   )Zh0Zh12Zh1r&   r&   r'   Útest_heavisideV   s2   

$$   r>   c                  C   sX  t dddt dƒ} }t| ƒ t¡td| dk ftdƒt| dƒfdƒks%J ‚t|ƒ t¡td|dk ftdƒt|dƒfdƒks?J ‚t| |ƒ t¡td| dk f|t| dƒfdƒksXJ ‚t| dƒ t¡td| dkfdƒkskJ ‚t| dƒ t¡td| dk fdƒks~J ‚t| tƒ t¡td| dk ftt| dƒfdƒks—J ‚t| ƒ t¡t| tdƒd t¡  kràtt| ƒd	 tdƒd	  ttdƒtdƒd	 ƒftt| ƒd	 tdƒd	  t| dƒftdƒdfƒdfƒksãJ ‚ J ‚t|ƒ t¡t|ƒksðJ ‚t| tj	ƒ t¡t| ƒd d	 ksJ ‚t| |ƒ t¡tt| ƒd	 tdƒd	  t|tdƒd	 ƒftt| ƒd	 tdƒd	  t| dƒf|dfƒdfƒks=J ‚t
|ƒ t¡tt
dƒt|dƒfd
ƒksSJ ‚t
|dƒ t¡t
|dƒkscJ ‚t
| d ƒ t¡tt
dƒt| d dƒfd
ƒks}J ‚| t
| d ƒ  t¡| t| ddƒ ks“J ‚d|  | t
|dƒ t¡ d|  | t|ddƒ ks°J ‚t
dƒ t¡tdddƒksÀJ ‚t
ddƒ t¡tdddƒksÑJ ‚t| ƒ t¡t| ddƒksáJ ‚d|  | t|d ƒ t¡ d|  | t|ddƒ ksÿJ ‚| d d t| d ƒ  t¡| d d t| ddƒ ksJ ‚tdƒ t¡tj	ks*J ‚d S )Nr$   T)Úrealr4   r   )r   Tr   )ZH0r   )r   Tr   é
   r*   éþÿÿÿr    )r	   r   Zrewriter   r   r   r   r   r   r<   r   r   )r$   r4   r&   r&   r'   Útest_rewritex   sp    ÿ ÿÿÿÿÿÿ,*ÿÿþþ((&ÿÿþ
ÿ, 
ÿ,: " <<rB   N)+Zsympy.core.numbersr   r   r   r   Zsympy.core.relationalr   r   Zsympy.core.singletonr   Zsympy.core.symbolr	   r
   Z$sympy.functions.elementary.complexesr   r   r   r   Z(sympy.functions.elementary.miscellaneousr   Z$sympy.functions.elementary.piecewiser   Z'sympy.functions.special.delta_functionsr   r   Z-sympy.functions.special.singularity_functionsr   Zsympy.simplify.simplifyr   Zsympy.testing.pytestr   Zsympy.core.exprr   Zsympy.core.functionr   r$   r4   r2   r   r   r9   r>   rB   r&   r&   r&   r'   Ú<module>   s(    ="