U
    L?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   sR  t tdd dt tdd ks$tt tdd t tddksDtt tdd t tddksdtt tdd t tddkstt tdd t tddkstt tdd	td	t tdd
 kstt tddtt tddkstt tddtt tddkstt tddtd	t tddks6ttddd} t tt|  | t tt| d
  ksltt tt| t| t tt| d
  kst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tt tddjddtt tddtks@tt	t
dd  d S )N      r            nTZpositive   
   F)evaluatec                   S   s   t tdddS )Nr   r   r   )r   xfdiff r%   r%   j/var/www/html/venv/lib/python3.8/site-packages/sympy/functions/special/tests/test_singularity_functions.py<lambda>)       ztest_fdiff.<locals>.<lambda>)r   r#   r$   AssertionError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ttt tdts(tt ddddks<tt ddddksPtt ddddksdtt ddddksxtt tddd	dddkstt ddd
tkstt ddd
dkstt ddd
dkstt ddddkstt ddddkstt dddtkstt ddddks$tt dddtks:tt ddddksPtt dddtksftt ddd	dt
ddkstt dtdt d d kstt ttttkstt ttdtkstt ttttkst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   r(   ztest_eval.<locals>.<lambda>c                   S   s   t dt ttS )Nr   )r   r   r   r%   r%   r%   r&   r'   E   r(   c                   S   s   t ttdS )N)r   r#   r+   r%   r%   r%   r&   r'   F   r(   )r   r#   r+   r   funcr)   r   r
   r   Zevalfr   r   r   r   
ValueErrorr%   r%   r%   r&   	test_eval,   s2    " r7   c                  C   s6  t ddd} ttddtdks&tttddtdks@tttddtdksZtttddjtd	d
dksxtttdd	tdkstttddtdkstttddtdkstttddtdksttt|  ddd tt|  | d d tt|  | dd  tt d ks2td S )NlTr   r   r   r   r   r   r   )cdirr   r   )r
   r   r#   Zas_leading_termr)   r8   r%   r%   r&   test_leading_termI   s$    r;   c                  C   sV  t ddd} ttddttd dt  d ks6tttdd	ttd ksTtttd
d
td	ksntttd
d
jtddd
kstttd
dtd
kstttd
dtd
kstttd
dtd
kstttd
dtd
ksttt|  d
d	d tt|  | d d	 tt|  | d	d  tt d ttd  ksRtd S )Nr8   Tr   r   r   r   	   r   r   r   -)dirr   r   )r
   r   r#   Zseriesr)   Znseriesr   r:   r%   r%   r&   test_seriesX   s$    *r?   c                  C   sB  t tddtttd d td dkfdks4tt tddttdtd dkfdks`tt tdd	tttttd dfdkstt tdd
tttttdfdksttddd} t tt| t}|ttt |  tt dkfdkst|	tt	| ddkst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st|t|kst|d|kst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t|t|ks*t|d|ks>td S )Nr   r   r   )r   Tr    r   r!   r   r   r   r   T)Znonnegativer   r   ZHeavisideDiracDelta)r   r#   Zrewriter   r)   r   r	   r
   r+   subsr   r   )r   pr,   r-   r%   r%   r&   test_rewriteg   s8    $0$4rB   N)%Zsympy.core.functionr   r   Zsympy.core.numbersr   r   r   r   r   Zsympy.core.relationalr	   Zsympy.core.symbolr
   r   Z$sympy.functions.elementary.piecewiser   Z'sympy.functions.special.delta_functionsr   r   Z-sympy.functions.special.singularity_functionsr   Zsympy.series.orderr   Zsympy.core.exprr   r   Zsympy.testing.pytestr   r#   r*   r+   r   r.   r7   r;   r?   rB   r%   r%   r%   r&   <module>   s    