o
    8Va                     @   sh   d Z ddlmZmZ 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 Zdd	 Zd
d ZdS )z=Tests for tools for manipulation of expressions using paths.     )epathEPath)raises)sincosE)xyztc                  C   s  t dtfdfdtdftfg} td| t dtfdfdtdftfgks#J td| t dtfddtdftgks6J td| t dtdtdgksEJ td| g ksNJ td	| t dtfdfdtdftfgkscJ td
| t dtfddtdftgksvJ td| t dtdtdgksJ td| g ksJ td| t dtfddtdftgksJ td| t dtfdtdfgksJ td| dtgksJ td| g ksJ td| dgksJ td| tgksJ td| t dtfdtdfgksJ td| t dtfdtdfgksJ td| t dtfddtdfgksJ td| t dtfdtdftgks"J td| t dtfddtdftgks6J td| t dtfddtdfgksIJ td| t dtfdtdftgks\J td| t dtfddtdftgkspJ td| g dks|J td| t ttgksJ td| ddgksJ td| ttgksJ td t t t d t ttgksJ td!ttt d  tt t t  t t tgksJ d S )"N            /*z/*/*z/*/*/*z/*/*/*/*z/[:]z/[:]/[:]z/[:]/[:]/[:]z/[:]/[:]/[:]/[:]z/*/[:]/*/[0]/*/[1]/*/[2]z/*/intz	/*/Symbolz/*/tuplez/*/__iter__?z/*/int|tuplez/*/Symbol|tuplez/*/int|Symbol|tuplez/*/int|__iter__?z/*/Symbol|__iter__?z/*/int|Symbol|__iter__?
/*/[0]/int)r   r   r   /*/[0]/Symbol/*/[0]/int[1:]/*/[0]/Symbol[1:]/Symbol/*/*/Symbol)r   r   r	   r
   r   r   r   r   expr r   F/usr/lib/python3/dist-packages/sympy/simplify/tests/test_epathtools.pytest_epath_select
   sB   *&*&&"""&&(&&
&:r   c                  C   s  t dtfdfdtdftfg} dd }td| tt dtfdgdtdftggks(J td| tt dtgdfdtdgtfgks>J td	| |t dtfdfdtdftd fgksVJ td
| t| ks`J td| |t dtfdfdtdftfgksvJ td| |t d dtd fdfdtd dftfgksJ td| |t dtfdfdtdftfgksJ td| |t dtd fdfdtd dftfgksJ tdt t t d |t d td  td  d ksJ tdttt d  tt t t  |ttt d d  tt d td  t  ksJ d S )Nr   r   r   r   c                 S   s   | d S )Nr   r   r   r   r   r   <lambda>7       z"test_epath_apply.<locals>.<lambda>r   r   r   r   r   	      r   r   r   r   r   )	r   r   r	   r
   r   listr   r   r   )r   funcr   r   r   test_epath_apply5   s0   ,,0,

8&*r%   c                   C   s   t djdks	J t t djdksJ ttdt du sJ tt ddks)J ttdd  ttdd  ttdd  ttdd  ttd	d  ttd
d  d S )Nr   TzEPath('/*/[0]')c                   S      t dS )N r   r   r   r   r   r   S   r    ztest_EPath.<locals>.<lambda>c                   S   r&   )N/r(   r   r   r   r   r   T   r    c                   S   r&   )Nz/|xr(   r   r   r   r   r   U   r    c                   S   r&   )Nz/[r(   r   r   r   r   r   V   r    c                   S   r&   )Nz/[0]%r(   r   r   r   r   r   W   r    c                   S   r&   )NZSymbolr(   r   r   r   r   r   Y   r    )r   _path
isinstancer   reprr   
ValueErrorNotImplementedErrorr   r   r   r   
test_EPathL   s   r/   N)__doc__Zsympy.simplify.epathtoolsr   r   Zsympy.testing.pytestr   Zsympyr   r   r   Z	sympy.abcr   r	   r
   r   r   r%   r/   r   r   r   r   <module>   s    +