§
    bŠtjm  ã                   óð   — d Z ddlmZ ddlZddlZddlmZ  ej        d¦  «        Z	 G d„ d¦  «        Z
d„ Zej                             d	ej        ej        ej        ej        g¦  «        d
„ ¦   «         Zd„ ZdS )z'Unit tests for pydot drawing functions.é    )ÚStringION)Úgraphs_equalÚpydotc                   óÖ   — e Zd Zej                             d ej        ¦   «          ej        ¦   «         f¦  «        ej                             dd¦  «        d„ ¦   «         ¦   «         Z	d„ Z
dS )Ú	TestPydotÚGÚprog)ÚneatoÚdotc                 óR  — d|j         d<   |                     g d¢¦  «         |                     d¦  «         t          j                             ||¬¦  «        }t          |t          ¦  «        sJ ‚t          j                             |¦  «        }| 	                    t          j         
                    |¦  «        ¦  «        }t          ||¦  «        sJ ‚|dz  }|                     |¦  «         t                               |d¬¦  «        }t          |¦  «        d	k    sJ ‚|d
         }	t!          d„ |                     ¦   «         D ¦   «         ¦  «        }
t!          d„ |	                     ¦   «         D ¦   «         ¦  «        }|
|k    sJ ‚t!          d„ |                     ¦   «         D ¦   «         ¦  «        }t!          d„ |	                     ¦   «         D ¦   «         ¦  «        }||k    sJ ‚t          j                             |¦  «        }| 	                    |¦  «        }t          ||¦  «        sJ ‚dS )z©
        Validate :mod:`pydot`-based usage of the passed NetworkX graph with the
        passed basename of an external GraphViz command (e.g., `dot`, `neato`).
        r   Úname)©ÚAÚB)r   ÚC©r   r   )r   ÚDÚE©r	   zout.dotzutf-8)ÚpathÚencodingé   r   c              3   ó>   K  — | ]}|                      ¦   «         V — Œd S ©N©Úget_name©Ú.0Úps     ú_/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/networkx/drawing/tests/test_pydot.pyú	<genexpr>z'TestPydot.test_pydot.<locals>.<genexpr>:   s*   è è € Ð<Ð< Q�A—J’J‘L”LÐ<Ð<Ð<Ð<Ð<Ð<ó    c              3   ó>   K  — | ]}|                      ¦   «         V — Œd S r   r   r   s     r    r!   z'TestPydot.test_pydot.<locals>.<genexpr>=   s*   è è € Ð>Ð> Q�A—J’J‘L”LÐ>Ð>Ð>Ð>Ð>Ð>r"   c              3   óf   K  — | ],}|                      ¦   «         |                     ¦   «         fV — Œ-d S r   ©Ú
get_sourceÚget_destination©r   Úes     r    r!   z'TestPydot.test_pydot.<locals>.<genexpr>C   s;   è è € ÐUÐU¸a�Q—\’\‘^”^ Q×%6Ò%6Ñ%8Ô%8Ð9ÐUÐUÐUÐUÐUÐUr"   c              3   óf   K  — | ],}|                      ¦   «         |                     ¦   «         fV — Œ-d S r   r%   r(   s     r    r!   z'TestPydot.test_pydot.<locals>.<genexpr>F   s;   è è € ÐWÐW¸a�Q—\’\‘^”^ Q×%6Ò%6Ñ%8Ô%8Ð9ÐWÐWÐWÐWÐWÐWr"   N)ÚgraphÚadd_edges_fromÚadd_nodeÚnxÚnx_pydotÚpydot_layoutÚ
isinstanceÚdictÚto_pydotÚ	__class__Ú
from_pydotr   Ú	write_rawr   Úgraph_from_dot_fileÚlenÚsortedÚget_node_listÚget_edge_listÚread_dot)Úselfr   r	   Útmp_pathÚgraph_layoutÚPÚG2ÚfnameÚPin_listÚPinÚn1Ún2Úe1Úe2ÚHins                  r    Ú
test_pydotzTestPydot.test_pydot   s#  € ð ˆŒ�‰ð 	
×ÒÐIÐIÐIÑJÔJÐJØ	�
Š
�3‰Œˆõ ”{×/Ò/°¸Ð/Ñ=Ô=ˆÝ˜,­Ñ-Ô-Ð-Ð-Ð-õ ŒK× Ò  Ñ#Ô#ˆð �[Š[�œ×/Ò/°Ñ2Ô2Ñ3Ô3ˆõ ˜A˜rÑ"Ô"Ð"Ð"Ð"à˜9Ñ$ˆð 	
�Š�EÑÔÐõ ×,Ò,°%À'Ð,ÑJÔJˆõ �8‰}Œ} Ò!Ð!Ð!Ð!ð �qŒkˆõ Ð<Ð<¨!¯/ª/Ñ*;Ô*;Ð<Ñ<Ô<Ñ<Ô<ˆõ Ð>Ð>¨#×*;Ò*;Ñ*=Ô*=Ð>Ñ>Ô>Ñ>Ô>ˆð �RŠxˆxˆxˆxõ ÐUÐUÀ1Ç?Â?ÑCTÔCTÐUÑUÔUÑUÔUˆõ ÐWÐWÀ3×CTÒCTÑCVÔCVÐWÑWÔWÑWÔWˆð �RŠxˆxˆxˆxõ Œk×"Ò" 5Ñ)Ô)ˆØ�kŠk˜#ÑÔˆõ ˜A˜sÑ#Ô#Ð#Ð#Ð#Ð#Ð#r"   c                 óX  — t          j        ¦   «         }d|j        d<   |                     ddd¬¦  «         t	          ¦   «         }t           j                             ||¦  «         |                     d¦  «         t           j                             |¦  «        }t          ||¦  «        sJ ‚d S )Nr   r   Ú1Ú2Ú0)Úkeyr   )
r.   Ú
MultiGraphr+   Úadd_edger   r/   Ú	write_dotÚseekr<   r   )r=   r   ÚfhÚHs       r    Útest_read_writezTestPydot.test_read_writeR   s‘   € ÝŒM‰OŒOˆØˆŒ�‰Ø	�
Š
�3˜ ˆ
Ñ%Ô%Ð%Ý‰ZŒZˆÝ
Œ×Ò˜a Ñ$Ô$Ð$Ø
�Š�‰
Œ
ˆ
ÝŒK× Ò  Ñ$Ô$ˆÝ˜A˜qÑ!Ô!Ð!Ð!Ð!Ð!Ð!r"   N)Ú__name__Ú
__module__Ú__qualname__ÚpytestÚmarkÚparametrizer.   ÚGraphÚDiGraphrJ   rV   © r"   r    r   r      s†   € € € € € Ø„[×Ò˜S 8 2¤8¡:¤:¨z¨r¬z©|¬|Ð"<Ñ=Ô=Ø„[×Ò˜VÐ%5Ñ6Ô6ð@$ð @$ñ 7Ô6ñ >Ô=ð@$ðD"ð "ð "ð "ð "r"   r   c                 óŽ  — t          j        ¦   «         }|                     g d¢¦  «         t           j                             |d¬¦  «        }t          |t          ¦  «        sJ ‚t           j                             |¦  «        }t          j        t           j                             |¦  «        ¦  «        }t          ||¦  «        sJ ‚dS )z»Validate that `nx_pydot.pydot_layout` handles nodes
    with characters like "
", " ".

    Those characters cause `pydot` to escape and quote them on output,
    which caused #7581.
    ))ú
A
big testr   )ra   r   r   r   r   N)
r.   r]   r,   r/   r0   r1   r2   r3   r5   r   )r>   r   r?   r@   rA   s        r    Útest_pydot_issue_7581rb   ]   s¬   € õ 	Œ‰
Œ
€AØ×ÒÐMÐMÐMÑNÔNÐNå”;×+Ò+¨A°EÐ+Ñ:Ô:€LÝ�l¥DÑ)Ô)Ð)Ð)Ð)õ 	Œ×Ò˜QÑÔ€AÝ	Œ•"”+×(Ò(¨Ñ+Ô+Ñ	,Ô	,€BÝ˜˜2ÑÔÐÐÐÐÐr"   Ú
graph_typec           	      ó¦  —  | ¦   «         }|                      dt          dg¦  «        dd¬¦  «         |                      dddd	t          d
g¦  «        ¬¦  «         |                      ddd¬¦  «         dddœddddœddigd„ t          j                             t          j                             |¦  «        ¦  «        j                             ¦   «         D ¦   «         k    sJ ‚d„ |                     ¦   «         D ¦   «         t          t          j                             t          j                             |¦  «        ¦  «        j        ¦  «        k    sJ ‚d S )NÚ5r   z"Example:A"F)ÚtÚlrL   é   T)Únode1ri   )Úwrf   rg   Únode)é   rl   Ústring)rj   ÚFalseÚTruez
('node1',)zfrozenset({'node1'})rj   c                 ó   — g | ]\  }}}|‘Œ	S r_   r_   )r   Ú_Úattrs      r    ú
<listcomp>z'test_hashable_pydot.<locals>.<listcomp>~   s.   € ð 
ð 
ð 
áˆAˆq�$ð 	ð
ð 
ð 
r"   c                 ó,   — h | ]}t          |¦  «        ’ŒS r_   )Ústr)r   Úis     r    ú	<setcomp>z&test_hashable_pydot.<locals>.<setcomp>ƒ   s   € Ð&Ð&Ð&�q�C�‰FŒFÐ&Ð&Ð&r"   )
rQ   Ú	frozensetr.   r/   r5   r3   ÚedgesÚdataÚnodesÚset)rc   r   s     r    Útest_hashable_pydotr}   p   s`  € ð
 	ˆ
‰Œ€AØ‡J‚Jˆs•I˜q˜c‘N”N m°u€JÑ=Ô=Ð=Ø‡J‚Jˆs�A˜ ­y¸'¸Ñ/CÔ/C€JÑDÔDÐDØ‡J‚Jˆv�v €JÑ*Ô*Ð*ð  'Ð*Ð*Ø˜<Ð.DÐEÐEØ	ˆhˆðð
ð 
åœ+×0Ò0µ´×1EÒ1EÀaÑ1HÔ1HÑIÔIÔO×TÒTÑVÔVð
ñ 
ô 
ò	ð ð ð ð 'Ð&˜AŸGšG™IœIÐ&Ñ&Ô&­#Ý
Œ×Ò�rœ{×3Ò3°AÑ6Ô6Ñ7Ô7Ô=ñ+ô +ò ð ð ð ð ð r"   c                  ó  — t          j        ¦   «         } |                      ddg¦  «         t           j                             | d¬¦  «        }t          |t          ¦  «        sJ ‚d|vsJ ‚d|v sJ ‚d|vsJ ‚d|v sJ ‚d	|v sJ ‚d
|v sJ ‚d S )Nr   )r   r   r   r   rN   r   rL   r   r   r   )r.   r]   r,   r/   r0   r1   r2   )r   r?   s     r    Útest_pydot_numerical_namer   ˆ   sÂ   € Ý
Œ‰
Œ
€AØ×Ò�j &Ð)Ñ*Ô*Ð*Ý”;×+Ò+¨A°EÐ+Ñ:Ô:€LÝ�l¥DÑ)Ô)Ð)Ð)Ð)Ø�lÐ"Ð"Ð"Ð"Ø�ÐÐÐÐØ�lÐ"Ð"Ð"Ð"Ø�ÐÐÐÐØ�,ÐÐÐÐØ�,ÐÐÐÐÐÐr"   )Ú__doc__Úior   rZ   Únetworkxr.   Únetworkx.utilsr   Úimportorskipr   r   rb   r[   r\   r]   r^   rP   ÚMultiDiGraphr}   r   r_   r"   r    ú<module>r†      sõ   ðØ -Ð -à Ð Ð Ð Ð Ð à €€€à Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'àˆÔ˜GÑ$Ô$€ðM"ð M"ð M"ð M"ð M"ñ M"ô M"ð M"ð`ð ð ð& „×ÒØ�2”8˜RœZ¨¬¸¼ÐHñô ðð ñô ðð*
ð 
ð 
ð 
ð 
r"   