
    Vh!                     h    d dl Z d dlZd Zd Zd Zej                  fdZej                  fdZd Z	y)    Nc                  X   t        j                  dt         j                        } | D ci c]  }|||f	 }}| j                  dd       d| j                  d   d<   d| j                  d   d<   d	| j
                  d   d
<   d| j
                  d   d
<   d| j
                  d   d
<   d| j
                  d   d<   d| j                  d   d<   d| j                  d   d<   d| j                  d   d<   d| j                  d   d<   d| j                  d   d
<   d| j                  d   d<   d| j                  d   d<   d| j                  d   d
<   t        j                  | |ddd
d
ddd	      }d}t        |j                  d       |j                  d             D ]  \  }}||k(  rJ  ||k(  sJ y c c}w )!N   create_usingr   Loop)r   r   labelmidwaylabel_optionsbluestylezline width=3,draw   zcircle,draw,blue!50   Stop   z1st Stepr   r   znear endz3rd Step)r   r   z
near startzbend left,green2ndr   r   zpos=0.5z$>->,bend right,line width=3,green!90Fz	[scale=3])posas_documenttikz_optionsnode_optionsedge_options
node_label
edge_labeledge_label_optionsa(  \begin{figure}
  \begin{tikzpicture}[scale=3]
      \draw
        (0, 0) node[blue] (0){0}
        (1, 1) node[line width=3,draw] (1){1}
        (2, 2) node[circle,draw,blue!50] (2){2}
        (3, 3) node (3){Stop};
      \begin{scope}[->]
        \draw (0) to node[near end] {1st Step} (1);
        \draw[loop,] (0) to node[midway] {Loop} (0);
        \draw[>->,bend right,line width=3,green!90] (1) to node[pos=0.5] {2nd} (2);
        \draw[bend left,green] (2) to node[near start] {3rd Step} (3);
      \end{scope}
    \end{tikzpicture}
\end{figure}
)	nx
path_graphDiGraphadd_edgeedgesnodesto_latexzipsplit)Gnr   
output_texexpected_texexpectedactuals          Q/home/dcms/DCMS/lib/python3.12/site-packages/networkx/drawing/tests/test_latex.pytest_tikz_attributesr-      s   
abjj1A
 1q!f9
 C
 JJq!%AGGFOG'/AGGFOO$ AGGAJw-AGGAJw/AGGAJw AGGAJw)AGGFOG'1AGGFOO$)AGGFOG'3AGGFOO$0AGGFOG$AGGFOG'0AGGFOO$EAGGFOG	 *
JL$   2 24 8*:J:J4:PQ "&6!!!" %%%g !s   F'c                     t        j                  d      } t        j                  d      }t        j                  d      }t        j                  d      }g d}g d}t        j                  | |||gd||      }d|v sJ d|v sJ |j	                  d	      dk(  sJ |j	                  d
      dk(  sJ |j	                  d      dk(  sJ y )Nr      )zPath on 4 nodeszComplete graph on 4 nodeszPath on 8 nodeszComplete graph on 8 nodes)fig2afig2bfig2cfig2dr   )n_rowssub_captions
sub_labelszbegin{document}zbegin{figure}zbegin{subfigure}tikzpicturez[-])r   r   complete_graphr#   count)H1H2H3H4captionslabels
latex_codes          r,   test_basic_multiple_graphsrA   >   s    	q	B			1	B	q	B			1	BH 2F	RR	J 
***j(((./1444M*a///E"a'''    c                     d} g d}t        j                         }|j                  t        d             |j	                  |       dddddd	d
dd}ddddd}ddddd}|j                         }t        j                  ||d       t        j                  ||d       ddg}ddg}t        j                  ||g||gdddd||ddd      }	t        | j                  d      |	j                  d            D ]  \  }
}|
|k(  rJ  |	| k(  sJ y )NaF  \documentclass{report}
\usepackage{tikz}
\usepackage{subcaption}

\begin{document}
\begin{figure}
  \begin{subfigure}{0.5\textwidth}
  \begin{tikzpicture}[scale=2]
      \draw[gray!90]
        (0.749, 0.702) node[red!90] (0){0}
        (1.0, -0.014) node[red!90] (1){1}
        (-0.777, -0.705) node (2){2}
        (-0.984, 0.042) node (3){3}
        (-0.028, 0.375) node[cyan!90] (4){4}
        (-0.412, 0.888) node (5){5}
        (0.448, -0.856) node (6){6}
        (0.003, -0.431) node[cyan!90] (7){7};
      \begin{scope}[->,gray!90]
        \draw (0) to (4);
        \draw (0) to (5);
        \draw (0) to (6);
        \draw (0) to (7);
        \draw (1) to (4);
        \draw (1) to (5);
        \draw (1) to (6);
        \draw (1) to (7);
        \draw (2) to (4);
        \draw (2) to (5);
        \draw (2) to (6);
        \draw (2) to (7);
        \draw (3) to (4);
        \draw (3) to (5);
        \draw (3) to (6);
        \draw (3) to (7);
      \end{scope}
    \end{tikzpicture}
    \caption{My tikz number 1 of 2}\label{tikz_1_2}
  \end{subfigure}
  \begin{subfigure}{0.5\textwidth}
  \begin{tikzpicture}[scale=2]
      \draw[gray!90]
        (0.749, 0.702) node[green!90] (0){0}
        (1.0, -0.014) node[green!90] (1){1}
        (-0.777, -0.705) node (2){2}
        (-0.984, 0.042) node (3){3}
        (-0.028, 0.375) node[purple!90] (4){4}
        (-0.412, 0.888) node (5){5}
        (0.448, -0.856) node (6){6}
        (0.003, -0.431) node[purple!90] (7){7};
      \begin{scope}[->,gray!90]
        \draw (0) to (4);
        \draw (0) to (5);
        \draw (0) to (6);
        \draw (0) to (7);
        \draw (1) to (4);
        \draw (1) to (5);
        \draw (1) to (6);
        \draw (1) to (7);
        \draw (2) to (4);
        \draw (2) to (5);
        \draw (2) to (6);
        \draw (2) to (7);
        \draw (3) to (4);
        \draw (3) to (5);
        \draw (3) to (6);
        \draw (3) to (7);
      \end{scope}
    \end{tikzpicture}
    \caption{My tikz number 2 of 2}\label{tikz_2_2}
  \end{subfigure}
  \caption{A graph generated with python and latex.}
\end{figure}
\end{document}))r   r   )r      )r      )r      )r   r   )r   rD   )r   rE   )r   rF   )r   r   )r   rD   )r   rE   )r   rF   )r   r   )r   rD   )r   rE   )r   rF   r/   )g`5?g'y?)g      ?gMR )g/κg	ƒ)gw!g^c?)g͛YgI1?)gDQVڿg]]Pj?)gGgǨ?g'e)g@j?g+?Cۿ)r   r   r   r   r   rD   rE   rF   zred!90zcyan!90)r   r   r   rF   zgreen!90z	purple!90colorzMy tikz number 1 of 2zMy tikz number 2 of 2tikz_1_2tikz_2_2z	[scale=2]zgray!90z(A graph generated with python and latex.r   T)	r   default_node_optionsdefault_edge_optionsr   r5   r6   captionr4   r   r   )
r   r   add_nodes_fromrangeadd_edges_fromcopyset_node_attributesr#   r$   r%   )r)   r!   r&   r   rc_node_colorgp_node_colorHr5   r6   r(   r*   r+   s               r,   test_basic_tikzrU   W   sH   HLTE$ 	

AU1XU2'555558	C !X)	JM"zkkRM	A1mW51mW5+-DELj)J	
A	c
 &&!:J    2 24 8*:J:J4:PQ "&6!!!" %%%rB   c                    t        j                  d      } | |d       dddd}t        j                  t         j                        5   | ||       d d d        d|d	<   t        j                  t         j                        5   | ||       d d d        d
|d	<   t        j                  t         j                        5   | ||       d d d        d|d	<    | ||       y # 1 sw Y   xY w# 1 sw Y   ^xY w# 1 sw Y   0xY w)Nr   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   pytestraisesNetworkXError)r#   r&   r   s      r,   test_exception_pos_single_graphr]      s    
aAQE F
+C	r''	( C CF	r''	( CCF	r''	( C CFQ 
  s$   	
C
C*=
C6C'*C36C?c                 T   t        j                  d      }ddd}dddd}||||g}||||g} | ||       t        j                  t         j                        5   | ||       d d d         | ||       t        j                  t         j                        5   | |||||g       d d d        t        j                  t         j                        5   | |||||g       d d d        t        j                  t         j                        5   | ||ddg       d d d        t        j                  t         j                        5   | ||ddg       d d d         | ||dgd	z  d
gd	z         y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   |xY w# 1 sw Y   OxY w)Nr   r   r   rW   rX   hi)r5   )r6   r   lbl)r5   r6   rY   )r#   r&   pos_badpos_OKfourGfourposs         r,   test_exception_multiple_graphsre      s   
aAV$GFv.F1aLEvvv.G UF	r''	( ! ! UG	r''	( >'7G<=> 
r''	( ;&9:; 
r''	( <tTl;< 
r''	( :T4L9: UG4&1*%1M)! !
> >; ;< <: :s<   
E-E:F	FF-E7:FFFF'c                     t        j                  dt         j                        } | j                  dd       t	        j
                  t         j                        5  t        j                  |        d d d        y # 1 sw Y   y xY w)Nr   r   r   r   )r   r   
MultiGraphr    rZ   r[   NetworkXNotImplementedr#   )r&   s    r,   test_exception_multigraphri     sV    
abmm4AJJq!	r00	1 
A  s   A::B)
rZ   networkxr   r-   rA   rU   r#   r]   re   ri    rB   r,   <module>rl      s@     5&p(2H&V .0[[ . -/KK N@rB   