U
    ZÊ¹jÕ  ã                   @   s´   d dl mZmZmZmZ d dlmZ d\ZZZ	e
edƒ\ZZZZeZdd„ Zdd„ Zi f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 ) é    )ÚCompoundÚVariableÚCondVariableÚallcombinations)Úcore)ÚaÚbÚcZwxyzc                 C   s   t | tƒo| jdkS )N)ÚAddÚMulÚCAddÚCMul©Ú
isinstancer   Úop©Úx© r   ú[/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/unify/tests/test_unify.pyÚis_associative	   s    r   c                 C   s   t | tƒo| jdkS )N)r   r   r   r   r   r   r   Úis_commutative   s    r   c                 C   s   t j| ||ttd�S )N)Úsr   r   )r   Úunifyr   r   )r   r   r   r   r   r   r      s    ÿr   c                   C   s<  t ttti ƒƒttigkst‚t ttttdiƒƒg ks:t‚t tdti ƒƒtdigksXt‚t ttti ƒƒi gksrt‚t tttfttfi ƒƒttttigksœt‚t ttttfi ƒƒtttfigksÂt‚t tttfttfi ƒƒg ksât‚t tttfttfi ƒƒg k�st‚t tttt	fftttffi ƒƒtttt	igk�s8t‚d S )Né
   é   )
Úlistr   r   r   ÚAssertionErrorÚwÚyÚzr   r	   r   r   r   r   Ú
test_basic   s    *& "r    c                   C   s„   t ttdtttfƒtdtttfƒi ƒƒttttigks:t‚t ttdtddƒttfƒtdtttfƒi ƒƒttddƒttigks€t‚d S )Nr
   r   ©r   é   )	r   r   ÚCr   r   r	   r   r   r   r   r   r   r   Útest_ops   s    &ÿ,ÿr$   c                  C   sT   t ddƒ} t dttfƒ}tt| |i ƒƒtdtt ddƒitt ddƒtdifksPt‚d S )Nr
   ©r   r"   é   r   ©r"   r&   r!   r&   )r#   r   r   Útupler   r   ©Úc1Úc2r   r   r   Útest_associative%   s
    
ÿr,   c                  C   sv   t ddƒ} t dttfƒ}tt| |i ƒƒ}tdtt ddƒi|ksBt‚tdtt ddƒi|ksrtdtt ddƒi|ksrt‚d S )Nr   r%   r   r'   r"   )r   r&   ©r&   r   )r#   r   r   r   r   r   )r*   r+   Úresultr   r   r   Útest_commutative+   s    
ÿr/   c                   C   s4   t tdttfdƒƒdttffdttffhks0t‚d S )Nr%   T©r!   ©r&   ©©r   r'   ©Úsetr   r   r   r   r   r   r   r   Ú_test_combinations_assoc3   s    ÿr6   c                   C   s,   t tdttfd ƒƒddddddhks(t‚d S )Nr%   )r2   ©r   r   ))©r"   r-   r7   ))r1   r!   r7   )r0   r7   ))r'   r3   r7   ))r-   r8   r7   r4   r   r   r   r   Ú_test_combinations_comm7   s      þÿr9   c                   C   s    t tdddƒƒddhkst‚d S )Nr!   Zcommutative)©r3   r8   r:   )r:   )r8   r3   )r5   r   r   r   r   r   r   Útest_allcombinations=   s    ÿr;   c                  C   sP   t dttfƒ} t dttfƒ}t| ƒr,t|ƒs0t‚ttt	| |i ƒƒƒdksLt‚d S )Nr   r"   )
r   r   r   r   r   r   r   Úlenr   r   r)   r   r   r   Útest_commutativityB   s    r=   c                  C   s–   t ddƒ} tdƒ}tddd„ ƒ}tddd„ ƒ}t d||fƒ}tt| |i ƒƒ|d	|d
igks^t‚tddd„ ƒ}t d||fƒ}tt| |i ƒƒg ks’t‚d S )Nr   r!   r   r   c                 S   s   | d dkS )Nr"   r   r   ©r   r   r   r   Ú<lambda>L   ó    z#test_CondVariable.<locals>.<lambda>r   c                 S   s   | dkS ©Nr&   r   r>   r   r   r   r?   M   r@   r   r"   c                 S   s   | dkS rA   r   r>   r   r   r   r?   R   r@   )r#   r   r   r   r   r   )Úexprr   r   r   Úpatternr   r   r   Útest_CondVariableI   s    
ÿrD   c                   C   s&   t ttdƒdƒƒtdƒdiks"t‚d S )Nr   Zfoo)Únextr   r   r   r   r   r   r   Útest_defaultdictW   s    rF   N)Zsympy.unify.corer   r   r   r   Zsympy.unifyr   r   r   r	   Úmapr   r   r   r   r#   r   r   r   r    r$   r,   r/   r6   r9   r;   r=   rD   rF   r   r   r   r   Ú<module>   s"   
