o
    i"                     @   s   d dl mZmZmZmZ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 d dlmZ d dlmZmZ d d	lmZmZmZ d
d Zdd Zdd Zdd Zdd Zdd ZG dd deZ dd Z!dd Z"dd Z#dd Z$d S )!    )top_down	bottom_upsalltop_down_oncebottom_up_once	basic_fns)rebuild)expr_fns)Add)Basic)Integer)S)StrSymbol)xyzc                 C   s   t | trtjS | S N)
isinstancer   r   ZZero)Z
expression r   s/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/sympy/strategies/tests/test_traverse.pyzero_symbols   s   r   c                  C   s@   t t} | ttttttttdtdtttksJ d S Nr   )r   r   r   r   r   r   r   )Zzero_onelevelr   r   r   	test_sall   s   r   c                   C      t t tt d S r   )_test_global_traversalr   _test_stop_on_non_basicsr   r   r   r   test_bottom_up      r   c                   C   r   r   )r   r   r   r   r   r   r   test_top_down   r   r   c                 C   sH   | t }|ttttttttdtdttdtdks"J d S r   )r   r   r   r   r   r   )travZzero_all_symbolsr   r   r   r   "   s    r   c                 C   sh   dd }t tdtdt tdtd}t tdtdt tdtd}| |}|||ks2J d S )Nc                 S   s"   z| d W S  t y   |  Y S w N   )	TypeError)exprr   r   r   add_one_if_can*   s
   
z0_test_stop_on_non_basics.<locals>.add_one_if_canr"   a   b   )r   r   r   )r    r%   r$   expectedrlr   r   r   r   )   s
   ""r   c                   @   s   e Zd ZdS )Basic2N)__name__
__module____qualname__r   r   r   r   r,   7   s    r,   c                 C   s$   | j rt| j d tst| j  S | S r   )argsr   r   r,   )r   r   r   r   r+   ;   s   
r+   c                  C   sX   t t} | ttdtdttdtdttdtdttdtdks*J d S )Ng      ?g       @r)      )r   r+   r   r   r,   )Ztop_rlr   r   r   test_top_down_onceA      $ r2   c                  C   sX   t t} | ttdtdttdtdttdtdttdtdks*J d S )Nr"   r'   g      @g      @)r   r+   r   r   r,   )Z	bottom_rlr   r   r   test_bottom_up_onceH   r3   r4   c                  C   sD   t td  } tdd t| }tdd t| }t||ks J d S )Nr)   c                 S   s   | d S r!   r   vr   r   r   <lambda>Q   s    ztest_expr_fns.<locals>.<lambda>c                 S   s   t t| tdS r!   )r   __new__r
   r   r5   r   r   r   r7   R   s    )r   r   r   r	   r   r   )r$   er(   r   r   r   test_expr_fnsO   s   r:   N)%Zsympy.strategies.traverser   r   r   r   r   r   Zsympy.strategies.rlr   Zsympy.strategies.utilr	   Zsympy.core.addr
   Zsympy.core.basicr   Zsympy.core.numbersr   Zsympy.core.singletonr   Zsympy.core.symbolr   r   Z	sympy.abcr   r   r   r   r   r   r   r   r   r,   r+   r2   r4   r:   r   r   r   r   <module>   s(     