a
    t@8b/                     @   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s2J tddksBJ tttksRJ tttfdttkslJ ttdtddttdtfksJ ttdtddtfdttdttfksJ d S )N         )r   r   r   	variablesFZevaluate)r   r   r
   r   r   r   r   exprexpected r   ;lib/python3.9/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sDJ 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sNJ 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sbJ tt| ||||fd|d|d|digksJ 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sRJ tt| ||di||fg kstJ d S )Nr   r   Zab   r%   )r   r(   r)   r+   r   r   r   test_s_input/   s
    
(r/   c                    s6   t | } t   t| t ko4t fdd| D S )Nc                 3   s   | ]}| v V  qd S Nr   ).0r   r)   r   r   	<genexpr>9       ziterdicteq.<locals>.<genexpr>)tuplelenall)r(   r)   r   r2   r   
iterdicteq6   s    r8   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||sJ d S Nr   r   r   Fr   r$   )r   r&   r   r5   r   r8   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>J tt|sNJ 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||shJ d S r9   )	r   r&   r   r   r   r   r'   r   r8   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sjJ d S )Nr   cossinr   Zpq)(sympy.functions.elementary.trigonometricr?   r@   r   r&   r   r'   r   )r?   r@   r   pqr+   r   r   r   test_hard_matcha   s
    rD   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sfJ tt||i ttdgdg ksJ d S )	Nr   )MatrixSymbolXYr   Zr   r   )Z"sympy.matrices.expressions.matexprrE   r   r'   r   r	   )rE   rF   rG   rH   r   r   r   test_matrixh   s    6rI   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    rK   c            	      C   sh   ddl m}  td\}}}}}| |||}| ||}||f}|| ||||itt|||dv sdJ d S )Nr   	FiniteSetz	a,b,c,x,yr   )sympy.sets.setsrM   r   r5   r   )	rM   r(   r)   r*   r   r   str   r   r   r   test_FiniteSet_commutivityy   s    
rQ   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|
sJ d S )Nr   rL   za,b,c,x,y,zr   r   )rN   rM   r   r   r   r5   r8   r   )rM   r(   r)   r*   r   r   r   r   r+   r   r   r   r   r   test_FiniteSet_complex   s    rR   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|sLJ d S )Nr   r   r   )r   r   r5   r   r   r8   r   r   )r   r   r   r   r   test_and   s
     rS   c                  C   sN   ddl m}  tt| dd| dd | dd| dd | ddfdsJJ d S )	Nr   Intervalr   
            r   )rN   rU   r'   r   rT   r   r   r   
test_Union   s
    
rZ   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    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sJ d S )Nr   )r(   r)   r*   dr>   r      r.   r   )
	sympy.abcr(   r)   r*   r\   rA   r?   r@   nextr   )r(   r)   r*   r\   r?   r@   eqZpatr   r   r   test_commutative_in_commutative   s
    ,(ra   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-   r/   r8   r<   r=   rD   rI   rK   rQ   rR   rS   rZ   r[   ra   r   r   r   r   <module>   s6   	