o
    *ήc                     @   s   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	 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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 e Z ee Z!ee!Z"ee!e Z#dd Z$dd Z%dd Z&dd Z'dd Z(dS )    )Basic)Tuple)default_sort_key)symbols)S)expandFunction)I)Integral)factor)preorder_traversalusepostorder_traversaliterargsiterfreeargs)ExprCondPair	Piecewise)warns_deprecated_sympy)capturec               	   C   s8  t tt} tt| | tttttttgksJ ttdg dks#J g }t| }|D ]}|| |tkr:|  q+|| tttttgksGJ t	d\}}}}||||   } tt| gt
d|||  | g|||  | ||||  ||| ||gksJ tt|| | dd|||  ||| ||gksJ d S )Nabcdef)r   r   r   r   r   zw:zkeysT)r   b21b3listr   b2b1appendskipr   r   )exprresultptiwxyz r+   F/tmp/pip-target-vg8gfxp4/lib/python/sympy/core/tests/test_traversal.pytest_preorder_traversal   s.   

8r-   c                  C   s  t d\} }tdtdksJ | | d |  d }t|tdd| d d| d  |  | |d   d ks6J t|tdd| d d| d  |  | |d   d ksSJ t|tddd| d|  | | d  |d    ksnJ t|tdd| | d |  d ksJ | d d d d }ddi}t|td|d	| d | d d  ksJ t|td|d	| t d | t d  d ksJ t|td|d	| t d | t d  d ksJ t|td|d	| d d d d ksJ d S )
Nzx yr         )level   gaussianT)r0   kwargs)r   r   r   r   r	   )r(   r)   fr3   r+   r+   r,   test_use,   s   ::6&(00,r5   c                  C   s  t d\} }}}||| |   }||| || | || |  || |  | g}tt|td|ks1J tt|dd|ks=J t| | dk f| d df}| d| | dk t| | dk d| | d tjt| d dt| | dk f| d dfg}tt|td|ks}J tt|gtd||gg ksJ ttt| d | ddftdd| | d dd| t	| ddt| d t	| ddgksJ ttdg dksJ d S )	Nzx y z wr   Tr/   r.   r   r   )r   r   r   r   r   )
r   r   r   r   r   r   r   truer
   r   )r(   r)   r*   r'   r#   expectedr+   r+   r,   test_postorder_traversalA   s0   *$
r8   c                  C   s   t d} td}ttt| || |dft| || |dfdgks&J ttt| || |dft| || |df| || |df|| |d|gksQJ d S )Nr4   r(   r/   )r   r   r   r   r
   r   )r4   r(   r+   r+   r,   test_iterargs[   s   
0r9   c                     s  t dt  ddlm}  |  W d    n1 sw   Y  t  ddlm} |dd  W d    n1 s<w   Y  t  ddlm} |dd  W d    n1 s\w   Y  t  dd	lm} |d
d  W d    n1 s|w   Y  t  ddl	m
} | W d    n1 sw   Y  t  ddl	m  t fdd W d    d S 1 sw   Y  d S )Nr(   r   )r   )	bottom_upc                 S      | S Nr+   r(   r+   r+   r,   <lambda>k       z)test_deprecated_imports.<locals>.<lambda>)walkc                 S   r;   r<   r+   r=   r+   r+   r,   r>   n   r?   )r   c                 S   r;   r<   r+   r=   r+   r+   r,   r>   q   r?   )r   )interactive_traversalc                      s    S r<   r+   r+   rA   r(   r+   r,   r>   w   s    )r   r   sympy.core.basicr   sympy.simplify.simplifyr:   r@   sympy.simplify.traversaltoolsr   sympy.utilities.iterablesr   rA   r   )r   r:   r@   r   r   r+   rB   r,   test_deprecated_importsc   s2   

"rG   N))rC   r   sympy.core.containersr   sympy.core.sortingr   sympy.core.symbolr   sympy.core.singletonr   sympy.core.functionr   r   sympy.core.numbersr	   sympy.integrals.integralsr
   sympy.polys.polytoolsr   sympy.core.traversalr   r   r   r   r   $sympy.functions.elementary.piecewiser   r   sympy.testing.pytestr   rF   r   r    r   r   r   r-   r5   r8   r9   rG   r+   r+   r+   r,   <module>   s,    
