o
    æð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)ÚnonzeroÚj)Ú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)Ú
diracdeltaÚwrt)r#   c                   S   ó   t tƒ d¡S ©Nr!   )r   ÚxÚfdiff© r)   r)   úf/var/www/vscode/kcb/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"   r0   r)   r)   r)   r*   r+   S   ó    )r   r   r'   Úir   r   r   Úfuncr   Úyr   r   ÚdiffÚ	is_simpler   ÚexpandÚabsr   r   r   r   Ú
ValueErrorr)   r)   r)   r*   Útest_DiracDelta   sb      ,,0 $*
ÿ &,,0 "*
ÿr=   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   r1   c                   S   r2   r3   r?   r)   r)   r)   r*   r+   u   r4   )r   r   ÚHalfr'   r   r   ÚargsÚpargsr   r7   r   r   r8   r   r   Úis_Functionr   r   r<   )Úh0Úh12Úh1r)   r)   r*   Útest_heavisideV   s2   

$$   rG   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)Úrealr7   r   )r   Tr   )ÚH0r!   )r   Tr   é
   r-   éþÿÿÿr"   )r	   r   Úrewriter   r   r   r   r   r   r@   r   r   )r'   r7   r)   r)   r*   Útest_rewritex   sp    ÿ ÿÿÿÿÿÿ,*ÿÿþþ((&ÿÿþ
ÿ, 
ÿ,: " <<rM   N)+Úsympy.core.numbersr   r   r   r   Úsympy.core.relationalr   r   Úsympy.core.singletonr   Úsympy.core.symbolr	   r
   Ú$sympy.functions.elementary.complexesr   r   r   r   Ú(sympy.functions.elementary.miscellaneousr   Ú$sympy.functions.elementary.piecewiser   Ú'sympy.functions.special.delta_functionsr   r   Ú-sympy.functions.special.singularity_functionsr   Úsympy.simplify.simplifyr   Úsympy.testing.pytestr   Úsympy.core.exprr   Úsympy.core.functionr   r'   r7   r5   r   r   r=   rG   rM   r)   r)   r)   r*   Ú<module>   s(    ="