o
    oh"                     @   s0  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mZ d d	lmZmZ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d Zdd Z dd Z!dd Z"dd Z#dd Z$dd Z%dd  Z&d!d" Z'd#d$ Z(d%d& Z)d'd( Z*d)d* Z+d+d, Z,d-d. Z-d/S )0    )Add)Basic)Tuple)S)Symbolsymbols)And)Str)CompoundVariable)deconstruct	constructunifyis_associativeis_commutative)xyznc                  C   s   t tdtdtd} tt d}t| |ksJ tddks!J tttks)J tttfdttks6J ttdtddttdtfksHJ ttdtddtfdttdttfks_J d S )N         )r   r   r   	variablesFevaluate)r   r   r
   r   r   r   r   exprexpected r   p/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/unify/tests/test_sympy.pytest_deconstruct   s   
$r!   c                  C   sH   t ttdtdtdf} ttdtdtd}t| |ks"J d S Nr   r   r   )r
   r   r   r   r   r   r   r    test_construct   s   r#   c                  C   sb   t tdt tdtd} tt tdtt tdtdf}t| |ks'J t|| ks/J d S r"   )r   r   r
   r   r   r   )r   cmpdr   r   r    test_nested   s   "r%   c                  C   s   t tdtdtd} ttd\}}}t |||}tt| |i |||f|d|d|digks1J tt| ||||fd|d|d|digksHJ d S )Nr   r   r   abcr   r   r   mapr   listr   )r   abcpatternr   r   r    
test_unify$   s   .r.   c                   C   s@   t tttdtdttdti tfdtdigksJ d S )Nr   r   r   )r)   r   r   r   r   r   r   r   r    test_unify_variables,   s   @r/   c                  C   sx   t tdtd} ttd\}}t ||}tt| |i ||f|d|digks)J tt| ||di||fg ks:J d S )Nr   r   ab   r'   )r   r*   r+   r-   r   r   r    test_s_input/   s
   
(&r2   c                    s6   t | } t   t| t kot fdd| D S )Nc                 3   s    | ]}| v V  qd S Nr   ).0r   r+   r   r    	<genexpr>9   s    ziterdicteq.<locals>.<genexpr>)tuplelenall)r*   r+   r   r5   r    
iterdicteq6   s   &r:   c                  C   s   t ddddd} ttd\}}}t |||dd}tt| |i |||f}|d|d|di|d|d|di|d|d|di|d|d|di|d|d|di|d|d|dif}t||sWJ d S Nr   r   r   Fr   r&   )r   r(   r   r7   r   r:   r   r*   r+   r,   r-   resultr   r   r   r    test_unify_commutative;   s   r>   c                  C   sj  t ddddd} ttd\}}}t ||dd}tt|sJ tt|s'J tt| |i ||f}|d|t ddddi|d|t ddddi|d|t ddddi|d|t ddddi|d|t ddddi|d|t ddddi|t dddd|di|t dddd|di|t dddd|di|t dddd|di|t dddd|di|t dddd|dig}t||sJ d S r;   )	r   r(   r   r   r   r   r)   r   r:   r<   r   r   r    test_unify_iterJ   s(   r?   c                  C   sn   ddl m} m} |t| td  }ttd\}}||| |d  }tt||i ||f|tigks5J d S )Nr   cossinr   pq)(sympy.functions.elementary.trigonometricrA   rB   r   r(   r   r)   r   )rA   rB   r   pqr-   r   r   r    test_hard_matcha   s
   (rG   c                  C   s   ddl m}  | dtt}| ddd}| ddd}tt||i ttdgdtdtdtdigks3J tt||i ttdgdg ksEJ d S )	Nr   )MatrixSymbolXYr   Zr   r   )"sympy.matrices.expressions.matexprrH   r   r)   r   r	   )rH   rI   rJ   rK   r   r   r    test_matrixh   s   6(rM   c                  C   s*   t td  } tt| }t| |j d S )Nr   )r   r   r   r   strr   )r   rebuiltr   r   r    test_non_frankenAddsp   s   
rP   c            	      C   sh   ddl m}  td\}}}}}| |||}| ||}||f}|| ||||itt|||dv s2J d S )Nr   	FiniteSetz	a,b,c,x,yr   )sympy.sets.setsrR   r   r7   r   )	rR   r*   r+   r,   r   r   str   r   r   r    test_FiniteSet_commutivityy   s   
,rV   c               	   C   s   ddl m}  td\}}}}}}| ttd||t||}| |t||}||f}	|d|| |t||i|||| |ttd|if}
tt|||	d|
sPJ d S )Nr   rQ   za,b,c,x,y,zr   r   )rS   rR   r   r   r   r:   r   )rR   r*   r+   r,   r   r   r   r   r-   r   r   r   r   r    test_FiniteSet_complex   s   rW   c                  C   sL   t tf} t tdkttdk if}tttdktdk @ tt t| d|s$J d S )Nr   r   r   )r   r   r   r   r:   r   r   )r   r   r   r   r    test_and   s
    rX   c                  C   sN   ddl m}  tt| dd| dd | dd| dd | ddfds%J d S )	Nr   Intervalr   
            r   )rS   rZ   r)   r   rY   r   r   r    
test_Union   s
   
r_   c                   C   s@   t ttt s
J t ttt sJ t ttt rJ d S r3   )r   r   r   r   r   r   r   r    test_is_commutative   s   r`   c                  C   s   ddl m} m}m}m} ddlm}m} |d|d |d d|d |d  }| || || ||| ||  }tt	||| |||fdsMJ d S )Nr   )r*   r+   r,   dr@   r      r1   r   )
	sympy.abcr*   r+   r,   ra   rD   rA   rB   nextr   )r*   r+   r,   ra   rA   rB   eqpatr   r   r    test_commutative_in_commutative   s
   ,("rg   N).sympy.core.addr   sympy.core.basicr   sympy.core.containersr   sympy.core.singletonr   sympy.core.symbolr   r   sympy.logic.boolalgr   r	   sympy.unify.corer
   r   sympy.unify.usympyr   r   r   r   r   rc   r   r   r   r   r!   r#   r%   r.   r/   r2   r:   r>   r?   rG   rM   rP   rV   rW   rX   r_   r`   rg   r   r   r   r    <module>   s8    	