
    sg                         d dl Z d dlmZ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mZmZ  ed
      Z ed      \  ZZZd Zd Zd Zd Zd Zd Zy)    N)EqNe)S)symbols)sqrt)cossin)import_module)skip)WildDotWildPlusWildStarReplacermatchpyzx y zc                     ddl m}m}  |       }|j                   ||             t	        t        |j                  |                   S )Nr   )ManyToOneMatcherPattern)r   r   r   addnextitermatch)exprpatternr   r   matchers        _/var/www/html/venv/lib/python3.12/site-packages/sympy/utilities/tests/test_matchpy_connector.py_get_first_matchr      s7    1 GKK !W]]4()**    c                  t   t         t        d       ddlm}  ddl m}m} t        d      }t        d      }t        d      }t        t        z   }t        |z   }t        ||      \  }}	| ||      k(  sJ |	 |dt        i      k(  sJ t        t        z   t        z   }t        |z   }t        ||      \  }}	| ||      k(  sJ |	 |d | t        t        g      i      k(  sJ t        t        z   t        z   }t        t        z   t        z   |z   }t        ||      \  }}	| ||      k(  sJ |	 |d |        i      k(  sJ y )Nmatchpy not installedr   )Multisetr   Substitutionw_w__w___)r   r   multisetr    r   r"   r   r   r   xyr   z)
r    r   r"   r#   r$   r%   r   r   psubsts
             r   test_matchpy_connectorr,      s4   $%!-	B
5/CFDq5D"fGg.HAu    L$++++q519D#gGg.HAu    L%1a&)9!:;;;;q519D!eai$Gg.HAu    L&(*!56666r   c                     t         t        d       ddl m} m} ddl m}m} t        dd      }t        dd      }|t        z  |z   }d	t        z  }t        ||      \  }}	| | |      k(  sJ |	 |d	dd
      k(  sJ t        dz   }
t        |
|      \  }}	| | |      k(  sJ |	 |ddd
      k(  sJ t        }t        ||      \  }}	| | |      k(  sJ |	 |ddd
      k(  sJ t        t        z  t        z   }t        ||      \  }}	| | |      k(  sJ |	 |t        t        d
      k(  sJ  |       }|j                   | | |      d              |j                  |      t        d	      t        d      z  k(  sJ |j                  |
      t        d      t        d      z  k(  sJ |j                  |      t        d      t        d      z  k(  sJ |j                  |      t        t              t        t              z  k(  sJ y )Nr   r   r!   )ManyToOneReplacerReplacementRuler*      optionalq   r*   r3      c                 0    t        |       t        |      z  S N)r	   r   r5   s     r   <lambda>z'test_matchpy_optional.<locals>.<lambda>X   s    As1v r   )r   r   r   r"   r.   r/   r   r'   r   r(   r)   r   replacer	   r   )r   r"   r.   r/   r*   r3   r   expr1par+   expr2expr3expr4replacers                 r   test_matchpy_optionalrA   7   s    $%-:a Aa AcAgGaCE 0IB!!!!Lqq!12222EE 0IB!!!!Lqq!12222E 0IB!!!!Lqq!12222aC!GE 0IB!!!!Lqq!12222 "HLL!13MNOE"c!fSVm333E"c!fSVm333E"c!fSVm333E"c!fSVm333r   c                  Z    t         t        d       dD ]  } dD ]  }t        | |         y )Nr   )TF)r   r   _perform_test_replacer)infolambdifys     r   test_replacerrF   _   s8    $% 3% 	3H"42	33r   c                      t        d      }t        d      }t        dt        j                        }t        dt        j                        }t        dt        j                        }t	        t
        j                  d       t
        j                  d       t
        j                  d	       g| 
      }|j                  t        ||      t        ||z
  d      t        |d      t        |d      t        |t              t        |t              gd       |j                  t        |t        z  |z   d      t        t        | |z        d       |dz  d|z  |z  z
  }|j                  t        |t        dz  z  |t        z  z   |z   d      t        t        | t        |      z
  d|z  z        t        t        | t        |      z   d|z  z        z  |dk\  gd       |j                  t        |t        dz  z  |z   d      t        t        t        | |z              t        t        t        | |z               z  | |z  dkD  gd        fd}	|j                  t        dt        z  t                     |	t        t        t        dz        ddg      k(  sJ |j                  t        t        dz  dz   d             |	t        t        dz  dz   d      g       k(  sJ |j                  t        t        dz  d             |	t        t        d      t        t        d      z  ddg      k(  sJ |j                  t        t        dz  dt        z  t        z  z   dt        dz  z  z   d             |	t        t        dt        z        dg      k(  sJ y )Nx1_x2_a_r1   b_c_c                 .    | j                  t               S r8   hasr'   )rJ   s    r   r9   z(_perform_test_replacer.<locals>.<lambda>r       q	M r   c                 .    | j                  t               S r8   rN   )rK   s    r   r9   z(_perform_test_replacer.<locals>.<lambda>s   rP   r   c                 .    | j                  t               S r8   rN   )rL   s    r   r9   z(_perform_test_replacer.<locals>.<lambda>t   rP   r   )common_constraintsrE   rD   r   r0   )conditions_nonfalserD   r4   )rD      r6   c                     r| |fS | S r8    )r   infosrD   s     r   r9   z(_perform_test_replacer.<locals>.<lambda>   s    TT5M t r   )r   r   OneZeror   r   CustomConstraintr   r   r   r'   r   r:   r(   )
rD   rE   rH   rI   rJ   rK   rL   r@   discgs
   `         r   rC   rC   h   s   
%.C
%.C		&B		&B		'B  !9:  !9:  !9:, t	%H LLCr#)Q/bajRTUXZ[R\^`adfg^hjlmprsjtEu|}L~ LLBqD2Iq!2a"R=qL9q51R47?DLL
2ad7RT>B"
1sT$Z!B$'(2a2#T
2BQrT1J+KK!QYK	   LL
2ad7R<
1dB3r6lbT2#b&\M22 SVaZL	   	<ABqsAJ'1R1Q3Z!Q+@@@@Bq!taxO,"QTAXq/20FFFFBq!tQK(Ar!Qx"Q)/Cq!f,MMMMBq!tac!e|a1f4a89Qr!RT{QC=PPPPr   c                     t         y t        d      } t        j                  t        j                  |             }| |k(  sJ t        dt        d            } t        j                  t        j                  |             }| |k(  sJ t        dt        d            } t        j                  t        j                  |             }| |k(  sJ t        dt        d            } t        j                  t        j                  |             }| |k(  sJ y )Nar0   )r   r   pickleloadsdumpsr   r   r   )a1a2s     r   test_matchpy_object_picklerf      s    	B	fll2&	'B8O8	ad	B	fll2&	'B8O8	#qt	B	fll2&	'B8O8	#qt	B	fll2&	'B8O8r   ) ra   sympy.core.relationalr   r   sympy.core.singletonr   sympy.core.symbolr   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   r	   sympy.externalr
   sympy.testing.pytestr   !sympy.utilities.matchpy_connectorr   r   r   r   r   r'   r(   r)   r   r,   rA   rF   rC   rf   rW   r   r   <module>ro      s^     * " % 9 ? ( % S S
	
"
'
1a+7<%4P3'QTr   