§
    OŠtjã  ã                   ó  — 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 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 d d
lmZmZ  ed¦  «        \  Z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S )é    )ÚProduct)ÚSum)Ú
DerivativeÚFunction)ÚIntegerÚRationalÚFloatÚoo)ÚRel)Úsymbols)Úsin)ÚIntegral)ÚOrder)Ú
precedenceÚ
PRECEDENCEzx,yc                  óÀ   — t          t          t          z   ¦  «        t          d         k    sJ ‚t          t          t          z  dz   ¦  «        t          d         k    sJ ‚d S )NÚAddé   ©r   ÚxÚyr   © ó    úb/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/printing/tests/test_precedence.pyÚtest_Addr      sP   € Ý•a�!‘eÑÔ¥
¨5Ô 1Ò1Ð1Ð1Ð1Ý•a�‘c˜A‘gÑÔ¥*¨UÔ"3Ò3Ð3Ð3Ð3Ð3Ð3r   c                  ój   — t          t          t          ¦  «        ¦  «        t          d         k    sJ ‚d S )NÚFunc)r   r   r   r   r   r   r   Útest_Functionr      s,   € Ý•c�!‘f”fÑÔ¥¨FÔ!3Ò3Ð3Ð3Ð3Ð3Ð3r   c                  óv   — t          t          t          t          ¦  «        ¦  «        t          d         k    sJ ‚d S ©NÚAtom)r   r   r   r   r   r   r   r   Útest_Derivativer"      s0   € Ý•j¥¥AÑ&Ô&Ñ'Ô'­:°fÔ+=Ò=Ð=Ð=Ð=Ð=Ð=r   c                  óv   — t          t          t          t          ¦  «        ¦  «        t          d         k    sJ ‚d S r    )r   r   r   r   r   r   r   r   Útest_Integralr$      s.   € Ý•h�q¥!‘n”nÑ%Ô%­°FÔ);Ò;Ð;Ð;Ð;Ð;Ð;r   c                  ó¼   — t          t          t          z  ¦  «        t          d         k    sJ ‚t          t           t          z  ¦  «        t          d         k    sJ ‚d S )NÚMulr   r   r   r   r   Útest_Mulr'      sL   € Ý•a�‘c‰?Œ?�j¨Ô/Ò/Ð/Ð/Ð/Ý•q�b�‘dÑÔ�z¨%Ô0Ò0Ð0Ð0Ð0Ð0Ð0r   c                  óp  — t          t          d¦  «        ¦  «        t          d         k    sJ ‚t          t          d¦  «        ¦  «        t          d         k    sJ ‚t          t          d¦  «        ¦  «        t          d         k    sJ ‚t          t          d¦  «        ¦  «        t          d         k    sJ ‚t          t          dd¦  «        ¦  «        t          d	         k    sJ ‚t          t          d
d¦  «        ¦  «        t          d         k    sJ ‚t          t	          d¦  «        ¦  «        t          d         k    sJ ‚t          t	          d
¦  «        ¦  «        t          d         k    sJ ‚t          t
          ¦  «        t          d         k    sJ ‚t          t
           ¦  «        t          d         k    sJ ‚d S )Nr   r!   r   éÿÿÿÿr   é
   é   é   r&   éûÿÿÿ)r   r   r   r   r	   r
   r   r   r   Útest_Numberr.   $   sf  € Ý•g˜a‘j”jÑ!Ô!¥Z°Ô%7Ò7Ð7Ð7Ð7Ý•g˜a‘j”jÑ!Ô!¥Z°Ô%7Ò7Ð7Ð7Ð7Ý•g˜b‘k”kÑ"Ô"¥j°Ô&7Ò7Ð7Ð7Ð7Ý•g˜b‘k”kÑ"Ô"¥j°Ô&8Ò8Ð8Ð8Ð8Ý•h˜q !‘n”nÑ%Ô%­°EÔ):Ò:Ð:Ð:Ð:Ý•h˜r 1‘o”oÑ&Ô&­*°UÔ*;Ò;Ð;Ð;Ð;Ý•e˜A‘h”hÑÔ¥:¨fÔ#5Ò5Ð5Ð5Ð5Ý•e˜B‘i”iÑ Ô ¥J¨uÔ$5Ò5Ð5Ð5Ð5Ý•b‰>Œ>�Z¨Ô/Ò/Ð/Ð/Ð/Ý•r�c‰?Œ?�j¨Ô/Ò/Ð/Ð/Ð/Ð/Ð/r   c                  ój   — t          t          t          ¦  «        ¦  «        t          d         k    sJ ‚d S r    )r   r   r   r   r   r   r   Ú
test_Orderr0   1   s,   € Ý•e�A‘h”hÑÔ¥:¨fÔ#5Ò5Ð5Ð5Ð5Ð5Ð5r   c                  ó  — t          t          t          z  ¦  «        t          d         k    sJ ‚t          t          t          z   ¦  «        t          d         k    sJ ‚t          t          t           z  ¦  «        t          d         k    sJ ‚d S )NÚPowr   r   r   r   r   Útest_Powr3   5   sr   € Ý•a�‘dÑÔ�z¨%Ô0Ò0Ð0Ð0Ð0Ý•q�!‘t�eÑÔ¥
¨5Ô 1Ò1Ð1Ð1Ð1Ý•a�!˜‘eÑÔ¥
¨5Ô 1Ò1Ð1Ð1Ð1Ð1Ð1r   c            	      ó–   — t          t          t          t          t          t          dz   f¦  «        ¦  «        t          d         k    sJ ‚d S ©Nr   r!   )r   r   r   r   r   r   r   r   Útest_Productr6   ;   s:   € Ý•g�a¥!¥Q­¨A© Ñ/Ô/Ñ0Ô0µJ¸vÔ4FÒFÐFÐFÐFÐFÐFr   c                  óˆ   — t          t          t          t          z   t          d¦  «        ¦  «        t          d         k    sJ ‚d S )Nú<Ú
Relational)r   r   r   r   r   r   r   r   Útest_Relationalr:   ?   s6   € Ý•c�!�a™%¥ CÑ(Ô(Ñ)Ô)­Z¸Ô-EÒEÐEÐEÐEÐEÐEr   c            	      ó–   — t          t          t          t          t          t          dz   f¦  «        ¦  «        t          d         k    sJ ‚d S r5   )r   r   r   r   r   r   r   r   Útest_Sumr<   C   s:   € Ý•c�!�a¥¥A¨¡E˜]Ñ+Ô+Ñ,Ô,µ
¸6Ô0BÒBÐBÐBÐBÐBÐBr   c                  óP   — t          t          ¦  «        t          d         k    sJ ‚d S r    )r   r   r   r   r   r   Útest_Symbolr>   G   s$   € Ý•a‰=Œ=�J vÔ.Ò.Ð.Ð.Ð.Ð.Ð.r   c                  óœ  — t          t          t          z  ¦  «        t          t          t          z  ¦  «        k    sJ ‚t          t           ¦  «        t          t          t          z  ¦  «        k    sJ ‚t          t          t          z   ¦  «        t          t          t          z  ¦  «        k    sJ ‚t          t          t          z   ¦  «        t          t          t          z  ¦  «        k    sJ ‚t          t          t          z  ¦  «        t          t          t          z  ¦  «        k    sJ ‚t          t          t          z  ¦  «        t          t          t          z  ¦  «        k    sJ ‚t          t           ¦  «        t          t          t          z  ¦  «        k    sJ ‚t          t           ¦  «        t          t          t          z
  ¦  «        k    sJ ‚t          t          t          z  ¦  «        t          d         k    sJ ‚t          t          t          z  ¦  «        t          d         k    sJ ‚t          t           ¦  «        t          d         k    sJ ‚d S )NÚAndÚOrÚNotr   r   r   r   Útest_And_OrrC   K   s   € å•a�!‘eÑÔ�z­!­a©%Ñ0Ô0Ò0Ð0Ð0Ð0Ý•q�b‰>Œ>�J¥q­1¡uÑ-Ô-Ò-Ð-Ð-Ð-å•a�!‘eÑÔ�z­!­a©%Ñ0Ô0Ò0Ð0Ð0Ð0Ý•a�!‘eÑÔ�z­!­a©%Ñ0Ô0Ò0Ð0Ð0Ð0Ý•a�‘c‰?Œ?�Z­­A©Ñ.Ô.Ò.Ð.Ð.Ð.Ý•a�‘c‰?Œ?�Z­­A©Ñ.Ô.Ò.Ð.Ð.Ð.Ý•q�b‰>Œ>�J¥q­¡s™OœOÒ+Ð+Ð+Ð+Ý•q�b‰>Œ>�J¥q­1¡uÑ-Ô-Ò-Ð-Ð-Ð-å•a�!‘eÑÔ¥
¨5Ô 1Ò1Ð1Ð1Ð1Ý•a�!‘eÑÔ¥
¨4Ô 0Ò0Ð0Ð0Ð0Ý•q�b‰>Œ>�Z¨Ô.Ò.Ð.Ð.Ð.Ð.Ð.r   c                  ó’   ‡‡—  G d„ dt           ¦  «        Š G d„ dt           ¦  «        Šˆfd„} ˆfd„} | ¦   «           |¦   «          dS )a_  
    Test cases for custom functions with different precedence values,
    specifically handling:
    1. Functions with precedence < PRECEDENCE["Mul"] (50)
    2. Functions with precedence = Func (70)

    Key distinction:
    1. Lower precedence functions (45) need parentheses: -2*(x F y)
    2. Higher precedence functions (70) don't: -2*x F y
    c                   ó*   — e Zd Zed         dz
  Zd„ ZdS )úBtest_custom_function_precedence_comparison.<locals>.LowPrecedenceFr&   r+   c                 óˆ   — |                      | j        d         ¦  «        › d|                      | j        d         ¦  «        › �S ©Nr   z F r   ©Ú_printÚargs©ÚselfÚprinters     r   Ú	_sympystrzLtest_custom_function_precedence_comparison.<locals>.LowPrecedenceF._sympystri   ó;   € Ø—n’n T¤Y¨q¤\Ñ2Ô2ÐUÐU°w·~²~ÀdÄiÐPQÄlÑ7SÔ7SÐUÐUÐUr   N©Ú__name__Ú
__module__Ú__qualname__r   r   rO   r   r   r   ÚLowPrecedenceFrF   g   s7   € € € € € Ø Ô&¨Ñ*ˆ
ð	Vð 	Vð 	Vð 	Vð 	Vr   rU   c                   ó$   — e Zd Zed         Zd„ ZdS )úCtest_custom_function_precedence_comparison.<locals>.HighPrecedenceFr   c                 óˆ   — |                      | j        d         ¦  «        › d|                      | j        d         ¦  «        › �S rH   rI   rL   s     r   rO   zMtest_custom_function_precedence_comparison.<locals>.HighPrecedenceF._sympystrn   rP   r   NrQ   r   r   r   ÚHighPrecedenceFrW   l   s2   € € € € € Ø Ô'ˆ
ð	Vð 	Vð 	Vð 	Vð 	Vr   rY   c                  óÀ   •— d ‰t           t          ¦  «        z  } t          | ¦  «        dk    sJ ‚d ‰t           t          ¦  «        z  }t          |¦  «        dk    sJ ‚d S )Nr,   z	2*(x F y)éþÿÿÿz
-2*(x F y)©r   r   Ústr)Úexpr1Úexpr2rU   s     €r   Útest_low_precedencezGtest_custom_function_precedence_comparison.<locals>.test_low_precedenceq   sc   ø€ Ø�N�N¥1¥aÑ(Ô(Ñ(ˆÝ�5‰zŒz˜[Ò(Ð(Ð(Ð(à�^�^¥A¥qÑ)Ô)Ñ)ˆÝ�5‰zŒz˜\Ò)Ð)Ð)Ð)Ð)Ð)r   c                  óÀ   •— d ‰t           t          ¦  «        z  } t          | ¦  «        dk    sJ ‚d ‰t           t          ¦  «        z  }t          |¦  «        dk    sJ ‚d S )Nr,   z2*x F yr[   z-2*x F yr\   )r^   r_   rY   s     €r   Útest_high_precedencezHtest_custom_function_precedence_comparison.<locals>.test_high_precedencex   sc   ø€ Ø�O�O¥A¥qÑ)Ô)Ñ)ˆÝ�5‰zŒz˜YÒ&Ð&Ð&Ð&à�_�_¥Q­Ñ*Ô*Ñ*ˆÝ�5‰zŒz˜ZÒ'Ð'Ð'Ð'Ð'Ð'r   N)r   )r`   rb   rY   rU   s     @@r   Ú*test_custom_function_precedence_comparisonrc   \   sÀ   øø€ ðVð Vð Vð Vð V�ñ Vô Vð Vð
Vð Vð Vð Vð V�(ñ Vô Vð Vð
*ð *ð *ð *ð *ð(ð (ð (ð (ð (ð ÐÑÔÐØÐÑÔÐÐÐr   N))Úsympy.concrete.productsr   Úsympy.concrete.summationsr   Úsympy.core.functionr   r   Úsympy.core.numbersr   r   r	   r
   Úsympy.core.relationalr   Úsympy.core.symbolr   Úsympy.functionsr   Úsympy.integrals.integralsr   Úsympy.series.orderr   Úsympy.printing.precedencer   r   r   r   r   r   r"   r$   r'   r.   r0   r3   r6   r:   r<   r>   rC   rc   r   r   r   ú<module>rn      sÍ  ðØ +Ð +Ð +Ð +Ð +Ð +Ø )Ð )Ð )Ð )Ð )Ð )Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø %Ð %Ð %Ð %Ð %Ð %Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .Ø $Ð $Ð $Ð $Ð $Ð $à <Ð <Ð <Ð <Ð <Ð <Ð <Ð <à€wˆu�~„~�€€1ð4ð 4ð 4ð
4ð 4ð 4ð>ð >ð >ð<ð <ð <ð1ð 1ð 1ð

0ð 
0ð 
0ð6ð 6ð 6ð2ð 2ð 2ðGð Gð GðFð Fð FðCð Cð Cð/ð /ð /ð/ð /ð /ð"$ð $ð $ð $ð $r   