Ë
    7^(hã  ã                   óú   — 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(y)é    )Ú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 ‚y )NÚAddé   ©r   ÚxÚyr   © ó    úb/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/printing/tests/test_precedence.pyÚtest_Addr      s>   € Ü”aœ!‘eÓ¤
¨5Ñ 1Ò1Ð1Ð1Ü”aœ‘c˜A‘gÓ¤*¨UÑ"3Ò3Ð3Ñ3r   c                  óL   — t        t        t        «      «      t        d   k(  sJ ‚y )NÚFunc)r   r   r   r   r   r   r   Útest_Functionr      s   € Ü”cœ!“fÓ¤¨FÑ!3Ò3Ð3Ñ3r   c                  óV   — t        t        t        t        «      «      t        d   k(  sJ ‚y ©NÚAtom)r   r   r   r   r   r   r   r   Útest_Derivativer"      s!   € Ü”j¤¤AÓ&Ó'¬:°fÑ+=Ò=Ð=Ñ=r   c                  óV   — t        t        t        t        «      «      t        d   k(  sJ ‚y r    )r   r   r   r   r   r   r   r   Útest_Integralr$      s    € Ü”hœq¤!“nÓ%¬°FÑ);Ò;Ð;Ñ;r   c                  óŽ   — t        t        t        z  «      t        d   k(  sJ ‚t        t         t        z  «      t        d   k(  sJ ‚y )NÚMulr   r   r   r   r   Útest_Mulr'      s;   € Ü”aœ‘c‹?œj¨Ñ/Ò/Ð/Ð/Ü”q�bœ‘dÓœz¨%Ñ0Ò0Ð0Ñ0r   c                  óv  — 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 ‚y )Nr   r!   r   éÿÿÿÿr   é
   é   é   r&   éûÿÿÿ)r   r   r   r   r	   r
   r   r   r   Útest_Numberr.   $   s  € Ü”g˜a“jÓ!¤Z°Ñ%7Ò7Ð7Ð7Ü”g˜a“jÓ!¤Z°Ñ%7Ò7Ð7Ð7Ü”g˜b“kÓ"¤j°Ñ&7Ò7Ð7Ð7Ü”g˜b“kÓ"¤j°Ñ&8Ò8Ð8Ð8Ü”h˜q !“nÓ%¬°EÑ):Ò:Ð:Ð:Ü”h˜r 1“oÓ&¬*°UÑ*;Ò;Ð;Ð;Ü”e˜A“hÓ¤:¨fÑ#5Ò5Ð5Ð5Ü”e˜B“iÓ ¤J¨uÑ$5Ò5Ð5Ð5Ü”b‹>œZ¨Ñ/Ò/Ð/Ð/Ü”r�c‹?œj¨Ñ/Ò/Ð/Ñ/r   c                  óL   — t        t        t        «      «      t        d   k(  sJ ‚y r    )r   r   r   r   r   r   r   Ú
test_Orderr0   1   s   € Ü”eœA“hÓ¤:¨fÑ#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 ‚y )NÚPowr   r   r   r   r   Útest_Powr3   5   sZ   € Ü”aœ‘dÓœz¨%Ñ0Ò0Ð0Ð0Ü”qœ!‘t�eÓ¤
¨5Ñ 1Ò1Ð1Ð1Ü”aœ!˜‘eÓ¤
¨5Ñ 1Ò1Ð1Ñ1r   c            	      ór   — t        t        t        t        t        t        dz   f«      «      t        d   k(  sJ ‚y ©Nr   r!   )r   r   r   r   r   r   r   r   Útest_Productr6   ;   s+   € Ü”gœa¤!¤Q¬¨A© Ó/Ó0´J¸vÑ4FÒFÐFÑFr   c                  óf   — t        t        t        t        z   t        d«      «      t        d   k(  sJ ‚y )Nú<Ú
Relational)r   r   r   r   r   r   r   r   Útest_Relationalr:   ?   s'   € Ü”cœ!œa™%¤ CÓ(Ó)¬Z¸Ñ-EÒEÐEÑEr   c            	      ór   — t        t        t        t        t        t        dz   f«      «      t        d   k(  sJ ‚y r5   )r   r   r   r   r   r   r   r   Útest_Sumr<   C   s+   € Ü”cœ!œa¤¤A¨¡E˜]Ó+Ó,´
¸6Ñ0BÒBÐBÑBr   c                  ó:   — t        t        «      t        d   k(  sJ ‚y r    )r   r   r   r   r   r   Útest_Symbolr>   G   s   € Ü”a‹=œJ vÑ.Ò.Ð.Ñ.r   c                  ó�  — t        t        t        z  «      t        t        t        z  «      kD  sJ ‚t        t         «      t        t        t        z  «      kD  sJ ‚t        t        t        z   «      t        t        t        z  «      kD  sJ ‚t        t        t        z   «      t        t        t        z  «      kD  sJ ‚t        t        t        z  «      t        t        t        z  «      kD  sJ ‚t        t        t        z  «      t        t        t        z  «      kD  sJ ‚t        t         «      t        t        t        z  «      kD  sJ ‚t        t         «      t        t        t        z
  «      kD  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 ‚y )NÚAndÚOrÚNotr   r   r   r   Útest_And_OrrC   K   sG  € ä”aœ!‘eÓœz¬!¬a©%Ó0Ò0Ð0Ð0Ü”q�b‹>œJ¤q¬1¡uÓ-Ò-Ð-Ð-ä”aœ!‘eÓœz¬!¬a©%Ó0Ò0Ð0Ð0Ü”aœ!‘eÓœz¬!¬a©%Ó0Ò0Ð0Ð0Ü”aœ‘c‹?œZ¬¬A©Ó.Ò.Ð.Ð.Ü”aœ‘c‹?œZ¬¬A©Ó.Ò.Ð.Ð.Ü”q�b‹>œJ¤q¬¡s›OÒ+Ð+Ð+Ü”q�b‹>œJ¤q¬1¡uÓ-Ò-Ð-Ð-ä”aœ!‘eÓ¤
¨5Ñ 1Ò1Ð1Ð1Ü”aœ!‘eÓ¤
¨4Ñ 0Ò0Ð0Ð0Ü”q�b‹>œZ¨Ñ.Ò.Ð.Ñ.r   c                  ót   ‡‡—  G d„ dt         «      Š G d„ dt         «      Šˆfd„} ˆfd„} | «         |«        y)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y)úBtest_custom_function_precedence_comparison.<locals>.LowPrecedenceFr&   r+   c                 ó€   — |j                  | j                  d   «      › d|j                  | j                  d   «      › �S ©Nr   z F r   ©Ú_printÚargs©ÚselfÚprinters     r   Ú	_sympystrzLtest_custom_function_precedence_comparison.<locals>.LowPrecedenceF._sympystri   ó8   € Ø—n‘n T§Y¡Y¨q¡\Ó2Ð3°3°w·~±~ÀdÇiÁiÐPQÁlÓ7SÐ6TÐUÐUr   N©Ú__name__Ú
__module__Ú__qualname__r   r   rO   r   r   r   ÚLowPrecedenceFrF   g   s   „ Ø Ñ&¨Ñ*ˆ
ó	Vr   rU   c                   ó   — e Zd Zed   Zd„ Zy)úCtest_custom_function_precedence_comparison.<locals>.HighPrecedenceFr   c                 ó€   — |j                  | j                  d   «      › d|j                  | 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   s   „ Ø Ñ'ˆ
ó	Vr   rY   c                  ó–   •— d ‰t         t        «      z  } t        | «      dk(  sJ ‚d ‰t         t        «      z  }t        |«      dk(  sJ ‚y )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   sI   ø€ Ø‘N¤1¤aÓ(Ñ(ˆÜ�5‹z˜[Ò(Ð(Ð(à‘^¤A¤qÓ)Ñ)ˆÜ�5‹z˜\Ò)Ð)Ñ)r   c                  ó–   •— d ‰t         t        «      z  } t        | «      dk(  sJ ‚d ‰t         t        «      z  }t        |«      dk(  sJ ‚y )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   sI   ø€ Ø‘O¤A¤qÓ)Ñ)ˆÜ�5‹z˜YÒ&Ð&Ð&à‘_¤Q¬Ó*Ñ*ˆÜ�5‹z˜ZÒ'Ð'Ñ'r   N)r   )r`   rb   rY   rU   s     @@r   Ú*test_custom_function_precedence_comparisonrc   \   s7   ù€ ô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ß ;Ó ;Ý %Ý %Ý Ý .Ý $ç <áˆuƒ~�€€1ò4ò
4ò>ò<ò1ò

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