U
    ¹mœd"  ã                   @   sP   d dl Z d dlZdd„ Zdd„ Zdd„ Zejfdd	„Zejfd
d„Zdd„ Z	dS )é    Nc                  C   s   t jdt jd�} dd„ | D ƒ}|  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 �	}d!}||k�st‚d S )"Né   ©Zcreate_usingc                 S   s   i | ]}|||f“qS © r   )Ú.0Únr   r   úZ/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/networkx/drawing/tests/test_latex.pyÚ
<dictcomp>   s      z(test_tikz_attributes.<locals>.<dictcomp>r   ZLoop)r   r   ÚlabelZmidwayZlabel_optionsÚblueÚstylezline width=3,drawé   zcircle,draw,blue!50é   ZStopé   z1st Step©r   r   znear endz3rd Step)r   r   z
near startzbend left,greenZ2nd©r   r   zpos=0.5z$>->,bend right,line width=3,green!90Fz	[scale=3])ÚposÚas_documentÚtikz_optionsÚnode_optionsZedge_optionsZ
node_labelZ
edge_labelZ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ÚedgesZnodesÚto_latexÚAssertionError)ÚGr   Ú
output_texÚexpected_texr   r   r   Útest_tikz_attributes   s<    ÷r   c                  C   s¬   t  d¡} t  d¡}t  d¡}t  d¡}ddddg}ddd	d
g}t j| |||gd||d�}d|ksft‚d|ksrt‚| d¡dks„t‚| d¡dks–t‚| d¡dks¨t‚d S )Nr   é   zPath on 4 nodeszComplete graph on 4 nodeszPath on 8 nodeszComplete graph on 8 nodesZfig2aZfig2bZfig2cZfig2dr   )Ún_rowsÚsub_captionsÚ
sub_labelszbegin{document}zbegin{figure}zbegin{subfigure}Ztikzpicturez[-])r   r   Zcomplete_graphr   r   Úcount)ZH1ZH2ZH3ZH4ZcaptionsÚlabelsZ
latex_coder   r   r   Útest_basic_multiple_graphsA   s*    



ü
ür&   c            
      C   sæ   d} dddddddd	d
dddddddg}t  ¡ }| tdƒ¡ | |¡ dddddddddœ}dddddœ}ddd d dœ}| ¡ }t  ||d!¡ t  ||d!¡ d"d#g}d$d%g}t j||g||gd&d'd'd!||d(d)d*d+�}	|	| ksât‚d S ),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   r'   )r   r(   )r   r)   )r   r   )r   r'   )r   r(   )r   r)   )r   r   )r   r'   )r   r(   )r   r)   r    )g`5¯õøç?g'�÷®yæ?)g      ð?gMœ R �¿)g/£ÎºÙè¿g	àÆ’æ¿)gw�­¿!ï¿g“ø™^˜c¥?)gÍ›â„Yœ¿gìI1³þø×?)göDQ¼ÏVÚ¿gÇ]]P•jì?)gGgÊÃÇ¨Ü?gÝä'“eë¿)g@Øìõ»Ÿj?gï+?ËC”Û¿)r   r   r   r   r   r'   r(   r)   zred!90zcyan!90)r   r   r   r)   zgreen!90z	purple!90ÚcolorzMy tikz number 1 of 2zMy tikz number 2 of 2Ztikz_1_2Ztikz_2_2z	[scale=2]zgray!90z(A graph generated with python and latex.r   T)	r   Zdefault_node_optionsZdefault_edge_optionsr   r"   r#   Úcaptionr!   r   )	r   r   Zadd_nodes_fromÚrangeZadd_edges_fromÚcopyZset_node_attributesr   r   )
r   r   r   r   Zrc_node_colorZgp_node_colorÚHr"   r#   r   r   r   r   Útest_basic_tikz[   sf    Kð
øõr/   c              	   C   s®   t  d¡}| |dd� ddddœ}t t j¡� | ||ƒ W 5 Q R X d|d	< t t j¡� | ||ƒ W 5 Q R X d
|d	< t t j¡� | ||ƒ W 5 Q R X d|d	< | ||ƒ d S )Nr   r   )r   r   r   ©r   r   ©r   r   r   )r   r   r   r   r   )r   r   ©r   r   ÚpytestÚraisesZNetworkXError)r   r   r   r   r   r   Útest_exception_pos_single_graphé   s    
r5   c              	   C   s6  t  d¡}dddœ}ddddœ}||||g}||||g}| ||ƒ t t j¡� | ||ƒ W 5 Q R X | ||ƒ t t j¡� | |||||gƒ W 5 Q R X t t j¡� | |||||gƒ W 5 Q R X t t j¡� | ||ddgd� W 5 Q R X t t j¡� | ||ddgd� W 5 Q R X | ||dgd	 d
gd	 d� d S )Nr   r   r   r0   r1   Úhi)r"   )r#   r   Zlbl)r"   r#   r2   )r   r   Zpos_badZpos_OKZfourGZfourposr   r   r   Útest_exception_multiple_graphs   s$    



r7   c               	   C   sB   t jdt jd�} |  dd¡ t t j¡� t  | ¡ W 5 Q R X d S )Nr   r   r   r   )r   r   Z
MultiGraphr   r3   r4   ZNetworkXNotImplementedr   )r   r   r   r   Útest_exception_multigraph   s    r8   )
r3   Znetworkxr   r   r&   r/   r   r5   r7   r8   r   r   r   r   Ú<module>   s   ;  