
    oVh+                         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
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  G d
 de      Zd Zd Zd Zd Zd Zd Zd Zd Zy)    )Expr)Integer)S)Symbolsymbols)AssocOp	LatticeOp)raises)SympifyError)Addadd)Mulmulc                   ,    e Zd Z ed      Z ed      Zy)joinr      N)__name__
__module____qualname__r   zeroidentity     P/home/dcms/DCMS/lib/python3.12/site-packages/sympy/core/tests/test_operations.pyr   r      s    1:DqzHr   r   c            	         t        t        dd      d      t        dt        dd            k(  sJ t        dd      t        dd      k(  sJ t        dd      dk(  sJ t        dd      dk(  sJ t        dd      dk(  sJ t        t        dd      d      t        ddd      k(  sJ t               dk(  sJ t        d      dk(  sJ t        ddddddd      t        ddd      k(  sJ y )N         r   r   )r   r   r   r   test_lattice_simpler      s    Q
A$q$q!*"55551:a###1:??1:??1:??Q
A$q!Q-///6Q;;7a<<1aAq!$Q1555r   c                  P    t        t        d        t        dt              dk(  sJ y )Nc                       t        t              S N)r   objectr   r   r   <lambda>z+test_lattice_shortcircuit.<locals>.<lambda>!   s
    f r   r   )r
   r   r   r#   r   r   r   test_lattice_shortcircuitr%       s!    
<-.6?ar   c                  <    t        t        dddd            dk(  sJ y )N   r   r   r   zjoin(2, 3, 4, 5))strr   r   r   r   test_lattice_printr)   %   s!    tAq!Q $6666r   c                  z   t         j                  t        ddd            t        d      t        d      t        d      hk(  sJ t         j                  d      dhk(  sJ t        t         j                  d            d   t        j                  u sJ t        j                  d      d   t        j                  u sJ y )Nr   r   r   r   )r   	make_argsr   listZeror   r   r   r   test_lattice_make_argsr.   )   s    >>$q!Q-(QqT1Q41,>>>>>>!###q!"1%///==A!&&(((r   c                     t        dd      \  } }}}t        | ||      j                  ||z        dk(  sJ t        | ||      j                  ||z        dk(  sJ t        | |||      j                  ||z  |z        dk(  sJ y )Na,b,c,dF)commutativeT)r   r   has)abcds       r   test_issue_14025r7   0   s    6JAq!Qq!Q<AaC E)))q!Q<AaC D(((q!Q?qs1u%---r   c                     t        d      \  } }}} G d dt              } ||  |||            j                   | || |      |      j                  cxk(  r? | || ||            j                  cxk(  r! || ||      j                  cxk(  r	| ||fk(  sJ  J  |||      } |||d      }|j                  ||fk(  sJ  || |      j                  | |||fk(  sJ y )Nr0   c                   $    e Zd Zej                  Zy)%test_AssocOp_flatten.<locals>.MyAssocN)r   r   r   r   Oner   r   r   r   MyAssocr:   :   s    55r   r<   F)evaluate)r   r   args)r3   r4   r5   r6   r<   uvs          r   test_AssocOp_flattenrA   7   s    #JAq!Q'  1gam$))1q!&&1a !&& 	1a 1I	    
 	1A1u%A66aV1a=!Q1---r   c                  H    G fddt               }  G d d| t              t        j                  t        f       t	        d       |        }}t        dd      t        dd      k(  sJ t        ||      t        ||      k(  sJ t        |||       d|z  |      k(  sJ y )Nc                   "    e Zd Ze fd       Zy)$test_add_dispatcher.<locals>.NewBasec                     S r"   r   )selfNewAdds    r   _add_handlerz1test_add_dispatcher.<locals>.NewBase._add_handlerL       Mr   N)r   r   r   propertyrH   )rG   s   r   NewBaserD   K       		 
	r   rK   c                       e Zd Zy)#test_add_dispatcher.<locals>.NewAddNr   r   r   r   r   r   rG   rN   O       r   rG   r3   r   r   )r   r   r   register_handlerclassr   )rK   r3   r4   rG   s      @r   test_add_dispatcherrR   I   s    $ # sFmV4#;	qA q!9Aq	!!!q!9Aq	!!! q1:!Q'''r   c                  H    G fddt               }  G d d| t              t        j                  t        f       t	        d       |        }}t        dd      t        dd      k(  sJ t        ||      t        ||      k(  sJ t        |||       |dz  |      k(  sJ y )Nc                   "    e Zd Ze fd       Zy)$test_mul_dispatcher.<locals>.NewBasec                     S r"   r   )rF   NewMuls    r   _mul_handlerz1test_mul_dispatcher.<locals>.NewBase._mul_handler`   rI   r   N)r   r   r   rJ   rX   )rW   s   r   rK   rU   _   rL   r   rK   c                       e Zd Zy)#test_mul_dispatcher.<locals>.NewMulNrO   r   r   r   rW   rZ   c   rP   r   rW   r3   r   r   )r   r   r   rQ   r   )rK   r3   r4   rW   s      @r   test_mul_dispatcherr[   ]   s    $ # sFmV4#;	qA q!9Aq	!!!q!9Aq	!!! q1:1a(((r   N)sympy.core.exprr   sympy.core.numbersr   sympy.core.singletonr   sympy.core.symbolr   r   sympy.core.operationsr   r	   sympy.testing.pytestr
   sympy.core.sympifyr   sympy.core.addr   r   sympy.core.mulr   r   r   r   r%   r)   r.   r7   rA   rR   r[   r   r   r   <module>re      sT      & " / 4 ' + # #
9 

6 
7)..$(()r   