
    sh                         S SK r S SKJrJr  S SKJr  S SKJr  S SKJ	r	  S SK
JrJr  S SKJr  S SKJr  S S	KJrJrJrJr  \" S
5      r\" S5      u  rrrS rS rS rS rS rS rg)    N)EqNe)S)symbols)sqrt)cossin)import_module)skip)WildDotWildPlusWildStarReplacermatchpyzx y zc                     SSK JnJn  U" 5       nUR                  U" U5      5        [	        [        UR                  U 5      5      5      $ )Nr   )ManyToOneMatcherPattern)r   r   r   addnextitermatch)exprpatternr   r   matchers        ڀ/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/sympy/utilities/tests/test_matchpy_connector.py_get_first_matchr      s7    1 GKK !W]]4()**    c                  j   [         c  [        S5        SSKJn   SSK JnJn  [        S5      n[        S5      n[        S5      n[        [        -   n[        U-   n[        Xg5      u  pX" U5      :X  d   eX" S[        05      :X  d   e[        [        -   [        -   n[        U-   n[        Xg5      u  pX" U5      :X  d   eX" SU " [        [        /5      05      :X  d   e[        [        -   [        -   n[        [        -   [        -   U-   n[        Xg5      u  pX" U5      :X  d   eX" SU " 5       05      :X  d   eg )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,      s(   $%!-	B
5/CFDq5D"fG.HA    L$++++q519D#gG.HA    L%1a&)9!:;;;;q519D!eai$G.HA    L&(*!56666r   c                     [         c  [        S5        SSK Jn Jn  SSK JnJn  [        SSS9n[        SSS9nU[        -  U-   nS	[        -  n[        Xv5      u  pX" U5      :X  d   eX" S	SS
.5      :X  d   e[        S-   n
[        X5      u  pX" U5      :X  d   eX" SSS
.5      :X  d   e[        n[        X5      u  pX" U5      :X  d   eX" SSS
.5      :X  d   e[        [        -  [        -   n[        X5      u  pX" U5      :X  d   eX" [        [        S
.5      :X  d   eU" 5       nUR                  U" U " U5      S 5      5        UR                  U5      [        S	5      [        S5      -  :X  d   eUR                  U
5      [        S5      [        S5      -  :X  d   eUR                  U5      [        S5      [        S5      -  :X  d   eUR                  U5      [        [        5      [        [        5      -  :X  d   eg )Nr   r   r!   )ManyToOneReplacerReplacementRuler*      optionalq   r*   r3      c                 0    [        U 5      [        U5      -  $ N)r	   r   r5   s     r   <lambda>'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_optionalrB   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                  b    [         c  [        S5        S H  n S H  n[        X5        M     M     g )Nr   )TF)r   r   _perform_test_replacer)infolambdifys     r   test_replacerrG   _   s,    $%%H"42 & r   c                   ^  [        S5      n[        S5      n[        S[        R                  S9n[        S[        R                  S9n[        S[        R                  S9n[	        [
        R                  S 5      [
        R                  S 5      [
        R                  S	 5      /UT S
9nUR                  [        X#5      [        X#-
  S5      [        US5      [        US5      [        U[        5      [        U[        5      /SS9  UR                  [        U[        -  U-   S5      [        [        U* U-  5      SS9  US-  SU-  U-  -
  nUR                  [        U[        S-  -  U[        -  -   U-   S5      [        [        U* [        U5      -
  SU-  -  5      [        [        U* [        U5      -   SU-  -  5      -  US:  /SS9  UR                  [        U[        S-  -  U-   S5      [        [        [        U* U-  5      5      [        [        [        U* U-  5      * 5      -  U* U-  S:  /SS9  U 4S jn	UR                  [        S[        -  [        5      5      U	" [        [        [        S-  5      SS/5      :X  d   eUR                  [        [        S-  S-   S5      5      U	" [        [        S-  S-   S5      / 5      :X  d   eUR                  [        [        S-  S5      5      U	" [        [        S5      [        [        S5      -  SS/5      :X  d   eUR                  [        [        S-  S[        -  [        -  -   S[        S-  -  -   S5      5      U	" [        [        S[        -  5      S/5      :X  d   eg )Nx1_x2_a_r1   b_c_c                 6    U R                  [        5      (       + $ r8   hasr'   )rK   s    r   r9   (_perform_test_replacer.<locals>.<lambda>r       q	Mr   c                 6    U R                  [        5      (       + $ r8   rO   )rL   s    r   r9   rQ   s   rR   r   c                 6    U R                  [        5      (       + $ r8   rO   )rM   s    r   r9   rQ   t   rR   r   )common_constraintsrF   rE   r   r0   )conditions_nonfalserE   r4   )rE      r6   c                    > T(       a  X4$ U $ r8    )r   infosrE   s     r   r9   rQ      s    TTM;t;r   )r   r   OneZeror   r   CustomConstraintr   r   r   r'   r   r;   r(   )
rE   rF   rI   rJ   rK   rL   rM   rA   discgs
   `         r   rD   rD   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                  0   [         c  g [        S5      n [        R                  " [        R                  " U 5      5      nX:X  d   e[        S[        S5      5      n [        R                  " [        R                  " U 5      5      nX:X  d   e[        S[        S5      5      n [        R                  " [        R                  " U 5      5      nX:X  d   e[        S[        S5      5      n [        R                  " [        R                  " U 5      5      nX:X  d   eg )Nar0   )r   r   pickleloadsdumpsr   r   r   )a1a2s     r   test_matchpy_object_picklerh      s    	B	fll2&	'B8O8	ad	B	fll2&	'B8O8	#qt	B	fll2&	'B8O8	#qt	B	fll2&	'B8O8r   ) rc   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,   rB   rG   rD   rh   rY   r   r   <module>rq      s^     * " % 9 ? ( % S S
	
"
'
1a+7<%4P3'QTr   