o
    hi                     @   s   d dl mZmZ d dl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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ZZdd Z dd Z!dd Z"dd Z#dd Z$dS )    )
Derivativediff)FloatInanoopi)Eq)Symbolsymbols)	Piecewise)
DiracDelta	Heaviside)SingularityFunction)O)	unchanged)ArgumentIndexError)raiseszx y a nc                  C   sJ  t tdd dt tdd ksJ t tdd t tddks"J t tdd t tddks2J t tdd t tddksBJ t tdd t tddksRJ t tdd	td	t tdd
 kseJ t tddtt tddksvJ t tddtt tddksJ t tddtd	t tddksJ tddd} t tt|  | t tt| d
  ksJ t tt| t| t tt| d
  ksJ dt tt|  dt ttd  dt ttd  }| d t tt| d
  dt ttd  dt ttd  }t|t|ksJ t tddjddtt tddtksJ tt	dd  d S )N      r            nTpositive   
   F)evaluatec                   S   s   t tdddS )Nr   r   r   )r   xfdiff r&   r&   l/var/www/vscode/kcb/lib/python3.10/site-packages/sympy/functions/special/tests/test_singularity_functions.py<lambda>)   s    ztest_fdiff.<locals>.<lambda>)
r   r$   r%   yr   r
   ar   r   r   )r   expr_inexpr_outr&   r&   r'   
test_fdiff   s&   $    &""$(*08
r-   c                   C   s  t tttjt ksJ tt tdtsJ t ddddksJ t ddddks(J t ddddks2J t ddddks<J t tddd	dddksJJ t ddd
tu sTJ t ddd
dks^J t ddd
dkshJ t ddddksrJ t ddddks|J t dddtu sJ t ddddksJ t dddtu sJ t ddddksJ t dddtu sJ t ddddt	ddksJ t dt
dt
 d d ksJ t ttttu sJ t ttdtu sJ t ttttu sJ ttdd  ttdd  ttdd  d S )Nr   r    r   r   r   r   zT)zeror      r   r   r      r   gffffff@z40.8415c                   S   s   t tttS )N)r   r$   r*   r   r&   r&   r&   r'   r(   D       ztest_eval.<locals>.<lambda>c                   S   s   t dt ttS )Nr   )r   r   r   r&   r&   r&   r'   r(   E   s    c                   S   s   t ttdS )N)r   r$   r*   r&   r&   r&   r'   r(   F   r3   )r   r$   r*   r   funcr   r
   r   evalfr   r   r   r   
ValueErrorr&   r&   r&   r'   	test_eval,   s2    r8   c                  C   s4  t ddd} ttddtdksJ ttddtdks J ttddtdks-J ttddjtd	d
dks<J ttdd	tdksIJ ttddtdksVJ ttddtdkscJ ttddtdkspJ tt|  ddd tt|  | d d tt|  | dd  tt d ksJ d S )NlTr   r    r   r   r   r   r   )cdirr   r   )r
   r   r$   as_leading_termr9   r&   r&   r'   test_leading_termI   s    r=   c                  C   sT  t ddd} ttddttd dt  d ksJ ttdd	ttd ks*J ttd
d
td	ks7J ttd
d
jtddd
ksFJ ttd
dtd
ksSJ ttd
dtd
ks`J ttd
dtd
ksmJ ttd
dtd
kszJ tt|  d
d	d tt|  | d d	 tt|  | d	d  tt d ttd  ksJ d S )Nr9   Tr   r   r   r   	   r   r   r   -)dirr   r   )r
   r   r$   seriesnseriesr   r<   r&   r&   r'   test_seriesX   s    *rC   c                  C   s:  t tddtttd d td dkfdksJ t tddttdtd dkfdks0J t tdd	tttttd dfdksGJ t tdd
tttttdfdks\J tddd} t tt| t}|ttt |  tt dkfdks~J |tt| ddksJ t tddt tdd	 t tdd
 }td d t	td d t
td  t
td }|t	|ksJ |t
|ksJ |d|ksJ t tt| t ttd	 t ttd
 }tt |  t	tt d t
tt  t
tt d }|t	|ksJ |t
|ksJ |d|ksJ d S )Nr   r   r   )r   Tr!   r   r"   r   r   r   r   T)nonnegativer   r    HeavisideDiracDelta)r   r$   rewriter   r   r	   r
   r*   subsr   r   )r   pr+   r,   r&   r&   r'   test_rewriteg   s8   $0$4rI   N)%sympy.core.functionr   r   sympy.core.numbersr   r   r   r   r   sympy.core.relationalr	   sympy.core.symbolr
   r   $sympy.functions.elementary.piecewiser   'sympy.functions.special.delta_functionsr   r   -sympy.functions.special.singularity_functionsr   sympy.series.orderr   sympy.core.exprr   r   sympy.testing.pytestr   r$   r)   r*   r   r-   r8   r=   rC   rI   r&   r&   r&   r'   <module>   s"    