o
    8Va                     @   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
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 )+    )AddBasicsymbolsSymbolAndS)Str)CompoundVariable)deconstruct	constructunifyis_associativeis_commutative)xyznc                  C   s   t dd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s0J ttdtddttdtfksBJ ttdtddtfdttdttfksYJ d S )N         r   r   r   	variablesFZevaluate)r   r	   r   r   r
   r   exprexpected r   >/usr/lib/python3/dist-packages/sympy/unify/tests/test_sympy.pytest_deconstruct   s   
$r    c                  C   s*   t td} tddd}t| |ksJ d S )Nr   r   r   r   )r	   r   r   r   r   r   r   test_construct   s   
r!   c                  C   sJ   t dt dd} tt dtt ddf}t| |ksJ t|| ks#J d S )Nr   r   r   )r   )r   r	   r   r   )r   Zcmpdr   r   r   test_nested   s   r"   c                  C   s   t ddd} ttd\}}}t |||}tt| |i |||f|d|d|digks+J tt| ||||fd|d|d|digksBJ d S )Nr   r   r   abcr   r   mapr   listr   )r   abcpatternr   r   r   
test_unify   s   .r+   c                   C   s4   t ttdd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   test_unify_variables'   s   4r,   c                  C   sp   t dd} ttd\}}t ||}tt| |i ||f|d|digks%J tt| ||di||fg ks6J d S )Nr   r   ab   r$   )r   r'   r(   r*   r   r   r   test_s_input*   s
   

(&r/   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>4   s    ziterdicteq.<locals>.<genexpr>)tuplelenall)r'   r(   r   r2   r   
iterdicteq1   s   &r7   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   r4   r   r7   r   r'   r(   r)   r*   resultr   r   r   r   test_unify_commutative6   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 r8   )	r   r%   r   r   r   r   r&   r   r7   r9   r   r   r   test_unify_iterE   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   sincosr   Zpq)sympyr>   r?   r   r%   r   r&   r   )r>   r?   r   pqr*   r   r   r   test_hard_match\   s
   (rC   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   )r@   rD   r   r&   r   r   )rD   rE   rF   rG   r   r   r   test_matrixc   s   6(rH   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_frankenAddsk   s   
rJ   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   )r@   rL   r   r4   r   )	rL   r'   r(   r)   r   r   str   r   r   r   test_FiniteSet_commutivityt   s   
,rO   c               
   C   s   ddl m}  td\}}}}}}| ttd||t||}| |t||}||f}	t|d|| |t||i|||| |ttd|ig}
tt|||	d|
sRJ d S )Nr   rK   za,b,c,x,y,zr   r   )r@   rL   r   r   r   r4   r7   r   )rL   r'   r(   r)   r   r   r   r   r*   r   r   r   r   r   test_FiniteSet_complex|   s   rP   c                  C   sP   t tf} tt tdkttdk ig}tttdktdk @ tt t| d|s&J d S )Nr   r   r   )r   r   r4   r   r   r7   r   r   )r   r   r   r   r   test_and   s
    rQ   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   )r@   rS   r&   r   rR   r   r   r   
test_Union   s
   
rX   c                   C   s@   t ttt s
J t ttt sJ t ttt rJ d S r0   )r   r   r   r   r   r   r   r   test_is_commutative   s   rY   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      r.   r   )
	sympy.abcr'   r(   r)   rZ   r@   r>   r?   nextr   )r'   r(   r)   rZ   r>   r?   eqpatr   r   r   test_commutative_in_commutative   s
   ,("r`   N))r@   r   r   r   r   r   r   Zsympy.core.symbolr   Zsympy.unify.corer	   r
   Zsympy.unify.usympyr   r   r   r   r   r\   r   r   r   r   r    r!   r"   r+   r,   r/   r7   r;   r<   rC   rH   rJ   rO   rP   rQ   rX   rY   r`   r   r   r   r   <module>   s.     	