a
    <b/                     @   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evaluate)r   r   r
   r   r   r   r   exprexpected r   l/Users/vegardjervell/Documents/master/model/venv/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   ab   r&   )r   r)   r*   r,   r   r   r    test_s_input/   s
    
(r1   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   r4   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||sJ 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   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 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sjJ d S )Nr   cossinr   Zpq)(sympy.functions.elementary.trigonometricrA   rB   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sfJ tt||i ttdgdg ksJ d S )	Nr   )MatrixSymbolXYr   Zr   r   )Z"sympy.matrices.expressions.matexprrG   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v sdJ d S )Nr   	FiniteSetz	a,b,c,x,yr   )sympy.sets.setsrO   r   r7   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}	t|d|| |t||i|||| |ttd|ig}
tt|||	d|
sJ d S )Nr   rN   za,b,c,x,y,zr   r   )rP   rO   r   r   r   r7   r:   r   )rO   r)   r*   r+   r   r   r   r   r,   r   r   r   r   r    test_FiniteSet_complex   s    rT   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   r7   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sJJ d S )	Nr   Intervalr   
            r   )rP   rW   r(   r   rV   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sJ d S )Nr   )r)   r*   r+   dr@   r      r0   r   )
	sympy.abcr)   r*   r+   r^   rC   rA   rB   nextr   )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.   r1   r:   r>   r?   rF   rK   rM   rS   rT   rU   r\   r]   rd   r   r   r   r    <module>   s6   	