U
    	-e"                     @   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s2ttddksBttttksRttttfdttksltttdtddttdtfkstttdtddtfdttdttfkstd S )N         )r   r   r   	variablesFevaluate)r   r   r
   r   AssertionErrorr   r   r   exprexpected r    ]/var/www/html/Darija-Ai-Train/env/lib/python3.8/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sDtd S Nr   r   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sNtt|| ks^td S r#   )r   r   r
   r   r   r   r   )r   Z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sbttt| ||||fd|d|d|digkstd S )Nr   r   r   abcr   r   r   mapr   listr   r   )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<td S )Nr   r   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sRttt| ||di||fg kstt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o4t fdd| D S )Nc                 3   s   | ]}| k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||std S Nr   r   r   Fr   r&   )r   r(   r   r7   r   r:   r   r   r*   r+   r,   r-   resultr   r    r    r!   test_unify_commutative;   s    r>   c                  C   sl  t ddddd} ttd\}}}t ||dd}tt|s>ttt|sNt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	||shtd S r;   )
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sjtd S )Nr   cossinr   Zpq)	(sympy.functions.elementary.trigonometricrA   rB   r   r(   r   r)   r   r   )rA   rB   r   pqr-   r    r    r!   test_hard_matcha   s
    rF   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sfttt||i ttdgdg kstd S )	Nr   )MatrixSymbolXYr   Zr   r   )Z"sympy.matrices.expressions.matexprrG   r   r)   r   r	   r   )rG   rH   rI   rJ   r    r    r!   test_matrixh   s    6rK   c                  C   s*   t td  } tt| }t| |j d S )Nr   )r   r   r   r   strr   )r   Zrebuiltr    r    r!   test_non_frankenAddsp   s    rM   c            	      C   sh   ddl m}  td\}}}}}| |||}| ||}||f}|| ||||itt|||dksdtd S )Nr   	FiniteSetz	a,b,c,x,yr   )sympy.sets.setsrO   r   r7   r   r   )	rO   r*   r+   r,   r   r   str   r    r    r!   test_FiniteSet_commutivityy   s    
rS   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|
std S )Nr   rN   za,b,c,x,y,zr   r   )rP   rO   r   r   r   r:   r   r   )rO   r*   r+   r,   r   r   r   r   r-   r   r   r    r    r!   test_FiniteSet_complex   s    rT   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|sHtd S )Nr   r   r   )r   r   r   r   r:   r   r   r   )r   r   r    r    r!   test_and   s
     rU   c                  C   sN   ddl m}  tt| dd| dd | dd| dd | ddfdsJtd S )	Nr   Intervalr   
            r   )rP   rW   r)   r   r   rV   r    r    r!   
test_Union   s
    
r\   c                   C   s@   t ttt stt ttt s(tt ttt r<td S r3   )r   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st
d S )Nr   )r*   r+   r,   dr@   r      r1   r   )	sympy.abcr*   r+   r,   r^   rC   rA   rB   nextr   r   )r*   r+   r,   r^   rA   rB   eqpatr    r    r!   test_commutative_in_commutative   s
    ,(rd   N).Zsympy.core.addr   Zsympy.core.basicr   Zsympy.core.containersr   Zsympy.core.singletonr   Zsympy.core.symbolr   r   Zsympy.logic.boolalgr   r	   Zsympy.unify.corer
   r   Zsympy.unify.usympyr   r   r   r   r   r`   r   r   r   r   r"   r$   r%   r.   r/   r2   r:   r>   r?   rF   rK   rM   rS   rT   rU   r\   r]   rd   r    r    r    r!   <module>   s6   	