
    g(                         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 dS )    )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 d S )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       Y/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/printing/tests/test_dot.pytest_purestrr      s   6#;;=000051qtt$$%%)HHHHH588 <<<<<6#;;$///3FFFFF51qtt$$555KL L L L588t,,,*+ + + + + +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 d S )Nblueellipsecolorshaper"   blackr   )r	   r
   r   r   r   )styless    r   test_styleofr&      s    ;;<w()+F51;;''Vi+P+PPPPP1q5&!!w%K%KKKKKKKr   c                  6    t          ddd          dk    sJ d S )Nr   r    r!   z!"color"="blue", "shape"="ellipse")r   r   r   r   test_attrprintr(       s6    v	::;;./ / / / / /r   c                  V   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 d S )
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 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 d S )	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                      t          t          dz   d           t           fdt          t          dz   d          D                       sJ t           fdd t          t	          d          t          dz   fD             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	d
 t          t	          d          t          dz  fD             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d t          t          dz  z   fD             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 d S )Nr   Fr*   c              3       K   | ]}|v V  	d S Nr   .0etexts     r   	<genexpr>z test_dotprint.<locals>.<genexpr>@   '      >>QqDy>>>>>>r   c              3       K   | ]}|v V  	d S r2   r   r4   nr6   s     r   r7   z test_dotprint.<locals>.<genexpr>A   s8       + +T	+ + + + + +r   c                 0    g | ]}t          |d           S Fr*   r   r4   exprs     r   
<listcomp>z!test_dotprint.<locals>.<listcomp>B   s5     * * * $D777 * * *r   digraphc              3       K   | ]}|v V  	d S r2   r   r3   s     r   r7   z test_dotprint.<locals>.<genexpr>G   s'      AAQqDyAAAAAAr   c              3       K   | ]}|v V  	d S r2   r   r:   s     r   r7   z test_dotprint.<locals>.<genexpr>H   s8       , ,T	, , , , , ,r   c                 0    g | ]}t          |d           S r=   r>   r?   s     r   rA   z!test_dotprint.<locals>.<listcomp>I   s5     + + + $D777 + + +r   Tc              3       K   | ]}|v V  	d S r2   r   r3   s     r   r7   z test_dotprint.<locals>.<genexpr>N   s'      @@QqDy@@@@@@r   c              3       K   | ]}|v V  	d S r2   r   r:   s     r   r7   z test_dotprint.<locals>.<genexpr>O   s8       ! !T	! ! ! ! ! !r   c                 0    g | ]}t          |d           S )r   posr>   r?   s     r   rA   z!test_dotprint.<locals>.<listcomp>P   s5           $Db111      r   c              3       K   | ]}|v V  	d S r2   r   r3   s     r   r7   z test_dotprint.<locals>.<genexpr>T   r8   r   c              3       K   | ]}|v V  	d S r2   r   r:   s     r   r7   z test_dotprint.<locals>.<genexpr>U   s@       I IT	I I I I I Ir   )r   rI   )r   )r   r   allr   r   r   r6   s   @r   test_dotprintrO   >   s<   AaC&&&D>>>>(1Q3u"="="=>>>>>>>> + + + +* *

AaC(* * *+ + + + + + + + AadF5)))DAAAA(1QT6%"@"@"@AAAAAAAA , , , ,+ +

AqD)+ + +, , , , , , , , AadF4(((D@@@@(1QT6$"?"?"?@@@@@@@@ ! ! ! !   AXJ     ! ! ! ! ! ! ! ! AqD&&&D>>>>(1a4"="="=>>>>>>>> I I I I#A4000'!2F2F2FGI I I I I I I Ir   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 d S )N   r   r   )depthrR   )r   r   r   rN   s    r   test_dotprint_depthrS   Y   s|    AaCE###D1Q3q5>>T!!!!1::T!!!!AaCE??D$r   c                  p    ddl m}  t          d          }t           | d||                    dk    sJ d S )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.matexprrU   r   r   )rU   r;   s     r   test_Matrix_and_non_basicsrX   `   s[    ??????sALLa++,,     r   c                  Z    t          t          dz   t                    } d| v sJ d| v sJ d S )Nr   )	labelfuncr   r   )r   r   r   rN   s    r   test_labelfuncr[   }   s@    AEU+++DD    4r   c                      t          dd          \  } }t          | |z             t          || z             k    sJ t          | |z            t          || z            k    sJ d S )Nzx yF)commutative)r   r   )r   ys     r   test_commutativer_      sh    5e,,,DAqAE??hq1uoo----AaC==HQqSMM))))))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/   rO   rS   rX   r[   r_   r   r   r   <module>rh      s                  " " " " " "             / / / / / / / / " " " " " " / / / / / / / / % % % % % %      	+ 	+ 	+L L L/ / /? ? ?     6    :     * * * * *r   