o
    GZh"                     @   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   K/var/www/auris/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   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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
   
(&r1   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   r4   r    
iterdicteq6   s   &r9   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   r6   r   r9   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   r9   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   Zpq)(sympy.functions.elementary.trigonometricr@   rA   r   r'   r   r(   r   )r@   rA   r   pqr,   r   r   r    test_hard_matcha   s
   (rE   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   )Z"sympy.matrices.expressions.matexprrF   r   r(   r   r	   )rF   rG   rH   rI   r   r   r    test_matrixh   s   6(rJ   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   
rL   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.setsrN   r   r6   r   )	rN   r)   r*   r+   r   r   str   r   r   r    test_FiniteSet_commutivityy   s   
,rR   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   rM   za,b,c,x,y,zr   r   )rO   rN   r   r   r   r9   r   )rN   r)   r*   r+   r   r   r   r   r,   r   r   r   r   r    test_FiniteSet_complex   s   rS   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   r9   r   r   )r   r   r   r   r    test_and   s
    rT   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   )rO   rV   r(   r   rU   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 r2   )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      r0   r   )
	sympy.abcr)   r*   r+   r]   rB   r@   rA   nextr   )r)   r*   r+   r]   r@   rA   eqpatr   r   r    test_commutative_in_commutative   s
   ,("rc   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.   r1   r9   r=   r>   rE   rJ   rL   rR   rS   rT   r[   r\   rc   r   r   r   r    <module>   s8    	