
    sg"                        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 Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-y)    )Add)Basic)Tuple)S)Symbolsymbols)And)Str)CompoundVariable)deconstruct	constructunifyis_associativeis_commutative)xyznc                  $   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      t        t              k(  sJ t        t        dt        d            t        t        dt        f      k(  sJ t        t        dt        d      t        f      t        t        dt        t              f      k(  sJ y )N         )r   r   r   	variablesFevaluate)r   r   r   r   r   r   r   exprexpecteds     O/var/www/html/venv/lib/python3.12/site-packages/sympy/unify/tests/test_sympy.pytest_deconstructr"      s    QqT1Q41&Dy)Ht(((q>Qq>QqQD)Xa[888s1a%01XcAq65JJJJs1a%0QDAsQ,-. . .    c                      t        t        t        d      t        d      t        d      f      } t        t        d      t        d      t        d            }t        |       |k(  sJ y Nr   r   r   )r   r   r   r   r   s     r!   test_constructr&      sM    !adAaD12DQqT1Q41&HT?h&&&r#   c            
         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 y r%   )r   r   r   r   r   r   )r   cmpds     r!   test_nestedr)      sk    1uQqT{AaD)DEAaD(5%(";QqTBCDt$$$T?d"""r#   c            
      .   t        t        d      t        d      t        d            } t        t        d      \  }}}t        |||      }t	        t        | |i |||f            |d|d|digk(  sJ t	        t        | ||||f            |d|d|digk(  sJ y )Nr   r   r   abcr   r   r   mapr   listr   )r   abcpatterns        r!   
test_unifyr3   $   s    1qtQqT"D&% GAq!Aq!nGdGR!Q34!Q1a9K8LLLLdG1ay9:Aq!Q ! ! !r#   c            
          t        t        t        t        d      t        d            t        t        d      t              i t        f            t        digk(  sJ y )Nr   r   r   )r.   r   r   r   r    r#   r!   test_unify_variablesr6   ,   sE    eAaD!A$'qtQtLMSTVWRXQYYYYr#   c            	         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 y )Nr   r   ab   r,   )r   r/   r0   r2   s       r!   test_s_inputr:   /   s    1qtDvtDAqAqkGdGR!Q01q!Ql^CCCdGaVaV45;;;r#   c                     t        |       } t              t        |       t              k(  xr t        fd| D              S )Nc              3   &   K   | ]  }|v  
 y wNr5   ).0r   r0   s     r!   	<genexpr>ziterdicteq.<locals>.<genexpr>9   s     #6qAF#6s   )tuplelenall)r/   r0   s    `r!   
iterdicteqrC   6   s8    aAaAq6SV6#6A#6 66r#   c                     t        dddd      } t        t        d      \  }}}t        |||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        ||      sJ y Nr   r   r   Fr   r+   )r   r-   r   r@   r   rC   r   r/   r0   r1   r2   resultr    s          r!   test_unify_commutativerH   ;   s    q!Q'D&% GAq!!QE*GE$aAY78FAq!Q"Aq!Q"Aq!Q"Aq!Q"Aq!Q"Aq!Q"$H fh'''r#   c                     t        dddd      } t        t        d      \  }}}t        ||d      }t        t	        |            sJ t        t	        |            sJ t        t        | |i ||f            }|d|t        ddd      i|d|t        ddd      i|d|t        ddd      i|d|t        ddd      i|d|t        ddd      i|d|t        ddd      i|t        ddd      |di|t        ddd      |di|t        ddd      |di|t        ddd      |di|t        ddd      |di|t        ddd      |dig}t        ||      sJ y rE   )	r   r-   r   r   r   r   r.   r   rC   rF   s          r!   test_unify_iterrJ   J   s   q!Q'D&% GAq!!Q'G+g.///+g.///E$aV45FAq#aU34Aq#aU34Aq#aU34Aq#aU34Aq#aU34Aq#aU34C1u-q!4C1u-q!4C1u-q!4C1u-q!4C1u-q!4C1u-q!46H fh'''r#   c            	          ddl m} m}  |t               | t              dz  z   }t	        t
        d      \  }} ||       | |      dz  z   }t        t        ||i ||f            |t        igk(  sJ y )Nr   cossinr   pq)(sympy.functions.elementary.trigonometricrM   rN   r   r-   r   r.   r   )rM   rN   r   pqr2   s         r!   test_hard_matchrS   a   si    Cq6CFAIDvtDAq!fs1vqy GdGR!Q01q!fX===r#   c                  B   ddl m}   | dt        t              } | ddd      } | ddd      }t        t	        ||i t        t        d      g            t        d      t        d      t        digk(  sJ t        t	        ||i t        t        d      g            g k(  sJ y )	Nr   )MatrixSymbolXYr   Zr   r   )"sympy.matrices.expressions.matexprrU   r   r.   r   r
   )rU   rV   rW   rX   s       r!   test_matrixrZ   h   s    ?S!QAS!QAS!QAaB1c#h-89s3xSSTVW>X=YYYYaB1c#h-89R???r#   c                  z    t         t        dz  z   } t        t        |             }t	        |       |j
                   y )Nr   )r   r   r   r   strr   )r   rebuilts     r!   test_non_frankenAddsr^   p   s0     QqS5DD)*GLr#   c                      ddl m}  t        d      \  }}}}} | |||      } | ||      }||f}| | ||      ||it        t	        |||            v sJ y )Nr   	FiniteSetz	a,b,c,x,yr   )sympy.sets.setsra   r   r@   r   )	ra   r/   r0   r1   r   r   str   s	            r!   test_FiniteSet_commutivityre   y   sf    )K(MAq!Q!QA!QAAIyA1%uQY/O)PPPPr#   c                  R   ddl m}  t        d      \  }}}}}} | t        t	        d      |      |t        ||            } | |t        ||            }||f}	|d| | |t        ||            i||| | |t        t	        d      |            if}
t        t        |||	      |
      sJ y )Nr   r`   za,b,c,x,y,zr   r   )rb   ra   r   r   r   rC   r   )ra   r/   r0   r1   r   r   r   r   r2   r   r    s              r!   test_FiniteSet_complexrg      s    )}-Aq!Q1U1Q4^Qa4D5A;'G1IAq)AuQ{34!Q	!U1Q4^ <=?HeD'Y?JJJr#   c            	          t         t        f} t         t        dkD  t        t        dk  if}t	        t        t        dkD  t        dk  z  t        t         t              |       |      sJ y )Nr   r   r   )r   r   r   r   rC   r   r	   )r   r    s     r!   test_andri      sV    1IAE1a!e$&HeQqSQqSM3q!9	J     r#   c            
          ddl m}  t        t         | dd       | dd      z    | dd       | dd      z    | dd      f            sJ y )	Nr   Intervalr   
            r   )rb   rl   r.   r   rk   s    r!   
test_Unionrq      sT    (hq!nxB'77q!nxB'77!)"b!1 35 6 6 6r#   c                      t        t        t        t        z               sJ t        t        t        t        z              sJ t        t        t        t        z              rJ y r=   )r   r   r   r   r5   r#   r!   test_is_commutativers      sJ    +ac*++++ac*+++k!Q$/0000r#   c            
         ddl m} m}m}m} ddlm}m}  |d       |d      z   |d      z  d |d      z   |d      z  z   }|  ||      z   ||      z  | ||      z   ||      z  z   }t        t        ||| |||f            sJ y )Nr   )r/   r0   r1   drL   r      r9   r   )
	sympy.abcr/   r0   r1   ru   rP   rM   rN   nextr   )r/   r0   r1   ru   rM   rN   eqpats           r!   test_commutative_in_commutativer{      s    !!C	QAs1v	#a&Q	/B
CF(3q6/Ac!fHSVO
+Cb#!Aa3444r#   N).sympy.core.addr   sympy.core.basicr   sympy.core.containersr   sympy.core.singletonr   sympy.core.symbolr   r   sympy.logic.boolalgr	   r
   sympy.unify.corer   r   sympy.unify.usympyr   r   r   r   r   rw   r   r   r   r   r"   r&   r)   r3   r6   r:   rC   rH   rJ   rS   rZ   r^   re   rg   ri   rq   rs   r{   r5   r#   r!   <module>r      s     " ' " / # ! /     
.'
#!Z<7
((.>@QK 61
5r#   