
    wg(                         d dl mZmZmZmZ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 d dlmZmZ d dlmZ d dlmZ d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Z y)    )purestrstyleof	attrprintdotnodedotedgesdotprint)Basic)Expr)FloatInteger)S)Symbolsymbols)srepr)xc                     t        t        d            dk(  sJ t        t        t        d      t        d                  dk(  sJ t        t	        d            dk(  sJ t        t        d      d      d	k(  sJ t        t        t        d      t        d            d      d
k(  sJ t        t	        d      d      dk(  sJ y )Nr   Symbol('x')      Basic(Integer(1), Integer(2))Float('2.0', precision=53)T)	with_args)r    )r   )z
Integer(1)
Integer(2))r   r   )r   r   r	   r   r   r       b/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/sympy/printing/tests/test_dot.pytest_purestrr      s    6#;=00051qt$%)HHHH58 <<<<6#;$/3FFFF51qt$5KL L L58t,*+ + +r   c                      t         dddft        ddifg} t        t        t        d            |       dddk(  sJ t        t        dz   |       dddk(  sJ y )Nblueellipsecolorshaper"   blackr   )r	   r
   r   r   r   )styless    r   test_styleofr&      sc    ;<w()+F51;'Vi+PPPP1q5&!w%KKKKr   c                  *    t        ddd      dk(  sJ y )Nr   r    r!   z!"color"="blue", "shape"="ellipse")r   r   r   r   test_attrprintr(       s!    v	:;./ / /r   c                     t        t        d      dk(  sJ t        t        dz   d      dk(  sJ t        t        dz   d             t        t        t        dz  z   d      dk(  sJ t        t        t        dz  z   d      d	k(  sJ y )
NFrepeatz@"Symbol('x')" ["color"="black", "label"="x", "shape"="ellipse"];r   zS"Add(Integer(2), Symbol('x'))" ["color"="black", "label"="Add", "shape"="ellipse"];r   ze"Add(Symbol('x'), Pow(Symbol('x'), Integer(2)))" ["color"="black", "label"="Add", "shape"="ellipse"];Tzh"Add(Symbol('x'), Pow(Symbol('x'), Integer(2)))_()" ["color"="black", "label"="Add", "shape"="ellipse"];)r   r   r   r   r   test_dotnoder,   $   s    1U#LM M M1Q3u%	??  	!1 ?
 1q!t8E*	?? ? ? 1q!t8D)	?? ? ?r   c                      t        t        t        dz   d            ddgk(  sJ t        t        t        dz   d            ddgk(  sJ y )	Nr   Fr*   z/"Add(Integer(2), Symbol('x'))" -> "Integer(2)";z0"Add(Integer(2), Symbol('x'))" -> "Symbol('x')";Tz7"Add(Integer(2), Symbol('x'))_()" -> "Integer(2)_(0,)";z8"Add(Integer(2), Symbol('x'))_()" -> "Symbol('x')_(1,)";)sortedr   r   r   r   r   test_dotedgesr/   4   s^    (1Q3u-.;>3    (1q5./CF4   r   c            
      p   t        t        dz   d      t        fdt        t        dz   d      D              sJ t        fdt        t	        d      t        dz   fD  cg c]  } t        | d       c} D              sJ dv sJ t        t        t        dz  z   d      t        fdt        t        t        dz  z   d      D              sJ t        fdt        t	        d      t        dz  fD  cg c]  } t        | d       c} D              sJ dv sJ t        t        t        dz  z   d	      t        fd
t        t        t        dz  z   d	      D              sJ t        fdt        t        dz  z   fD  cg c]  } t        | d       c} D              sJ t        t        t        z  d	      t        fdt        t        t        z  d	      D              sJ t        fdt        t        d      t        t        d      fD              sJ dv sJ y c c} w c c} w c c} w )Nr   Fr*   c              3   &   K   | ]  }|v  
 y wNr   .0etexts     r   	<genexpr>z test_dotprint.<locals>.<genexpr>@        >QqDy>   c              3   &   K   | ]  }|v  
 y wr2   r   r4   nr6   s     r   r7   z test_dotprint.<locals>.<genexpr>A   s      +T	+r9   digraphc              3   &   K   | ]  }|v  
 y wr2   r   r3   s     r   r7   z test_dotprint.<locals>.<genexpr>G   s     AQqDyAr9   c              3   &   K   | ]  }|v  
 y wr2   r   r;   s     r   r7   z test_dotprint.<locals>.<genexpr>H   s      ,T	,r9   Tc              3   &   K   | ]  }|v  
 y wr2   r   r3   s     r   r7   z test_dotprint.<locals>.<genexpr>N   s     @QqDy@r9   c              3   &   K   | ]  }|v  
 y wr2   r   r;   s     r   r7   z test_dotprint.<locals>.<genexpr>O   s      !T	!r9   r   )posc              3   &   K   | ]  }|v  
 y wr2   r   r3   s     r   r7   z test_dotprint.<locals>.<genexpr>T   r8   r9   c              3   &   K   | ]  }|v  
 y wr2   r   r;   s     r   r7   z test_dotprint.<locals>.<genexpr>U   s      IT	Ir9   )r   )r   )r   r   allr   r   r   )exprr6   s    @r   test_dotprintrG   >   s   AaC&D>(1Q3u"=>>>> +
AaC(* $D7 *+ + + + AadF5)DA(1QT6%"@AAAA ,
AqD)+ $D7 +, , , , AadF4(D@(1QT6$"?@@@@ !AXJ  $Db1  ! ! ! ! AqD&D>(1a4"=>>>> I#A40'!2FGI I I I+*+ s   "H)
8H.
H3
c                      t        dt        z  dz   d      } t        dt        z  dz         | v sJ t        t              | vsJ t        dt        z  dz         } d| vsJ y )N   r   r   )depthrJ   )r   r   r   r6   s    r   test_dotprint_depthrL   Y   sa    AaCE#D1Q3q5>T!!!1:T!!!AaCE?D$r   c                  V    ddl m}  t        d      }t         | d||            dk(  sJ y )Nr   )MatrixSymbolr<   Xa  digraph{

# Graph style
"ordering"="out"
"rankdir"="TD"

#########
# Nodes #
#########

"MatrixSymbol(Str('X'), Symbol('n'), Symbol('n'))_()" ["color"="black", "label"="MatrixSymbol", "shape"="ellipse"];
"Str('X')_(0,)" ["color"="blue", "label"="X", "shape"="ellipse"];
"Symbol('n')_(1,)" ["color"="black", "label"="n", "shape"="ellipse"];
"Symbol('n')_(2,)" ["color"="black", "label"="n", "shape"="ellipse"];

#########
# Edges #
#########

"MatrixSymbol(Str('X'), Symbol('n'), Symbol('n'))_()" -> "Str('X')_(0,)";
"MatrixSymbol(Str('X'), Symbol('n'), Symbol('n'))_()" -> "Symbol('n')_(1,)";
"MatrixSymbol(Str('X'), Symbol('n'), Symbol('n'))_()" -> "Symbol('n')_(2,)";
})"sympy.matrices.expressions.matexprrN   r   r   )rN   r<   s     r   test_Matrix_and_non_basicsrQ   `   s3    ?sALa+,  r   c                  L    t        t        dz   t              } d| v sJ d| v sJ y )Nr   )	labelfuncr   r   )r   r   r   rK   s    r   test_labelfuncrT   }   s.    AEU+DD   4r   c                      t        dd      \  } }t        | |z         t        || z         k(  sJ t        | |z        t        || z        k7  sJ y )Nzx yF)commutative)r   r   )r   ys     r   test_commutativerX      sN    5e,DAqAE?hq1uo---AaC=HQqSM)))r   N)!sympy.printing.dotr   r   r   r   r   r   sympy.core.basicr	   sympy.core.exprr
   sympy.core.numbersr   r   sympy.core.singletonr   sympy.core.symbolr   r   sympy.printing.reprr   	sympy.abcr   r   r&   r(   r,   r/   rG   rL   rQ   rT   rX   r   r   r   <module>ra      sW     "   / " / % 	+L/? 6: *r   