
    sh                         S SK Jr  S SKrS SKrS SKJs  Jr  S SK	J
r
Jr  S rS r " S S5      r " S S	5      r " S
 S5      r " S S5      r " S S5      rg)    )BytesION)edges_equalnodes_equalc                      [         R                  " S5      n [         R                  " S5      n[         R                  R                  X5      (       d   eg)zSee gh-7557s#   >>graph6<<P~~~~~~~~~~~~~~~~~~~~~~{
s"   >>graph6<<P~~~~~~~~~~~~~~~~~~~~~~{N)nxfrom_graph6_bytesutilsgraphs_equal)GHs     x/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/networkx/readwrite/tests/test_graph6.py.test_from_graph6_invariant_to_trailing_newliner   
   s?    
DEA
BCA88  &&&&    c                      [         R                  " [        R                  5         [        R                  " S5      n SSS5        g! , (       d  f       g= f)z>graph6 headers must not be followed by a newline. See gh-7557.s#   >>graph6<<
P~~~~~~~~~~~~~~~~~~~~~~{N)pytestraisesr   NetworkXErrorr   )r   s    r   &test_from_graph6_raises_header_newliner      s1    	r''	(  !HI 
)	(	(   A
Ac                       \ rS rSrS rSrg)TestGraph6Utils   c                 V   S H  n[         R                  " [         R                  " U5      5      S   U:X  d   e[         R                  " [         R                  " U5      5      S   / :X  d   e[         R                  " [         R                  " U5      SS/-   5      S   SS/:X  a  M   e   g )N)
r      *   >   ?   @   i i  i-v l   ? r   r   r   +   )g6	data_to_n	n_to_data)selfis     r   test_n_data_n_conversion(TestGraph6Utils.test_n_data_n_conversion   s    MA<<Q03q888<<Q03r999<<Q2r( :;A>2r(JJJ Nr    N)__name__
__module____qualname____firstlineno__r%   __static_attributes__r'   r   r   r   r      s    Kr   r   c                        \ rS rSrS rS rSrg)TestFromGraph6Bytes   c                     Sn[         R                  " U5      n[        UR                  5       / SQ5      (       d   e[	        UR                  5       / SQ5      (       d   eg )N   DF{)r   r            ))r   r3   )r   r4   )r   r3   )r   r4   )r2   r3   )r2   r4   )r3   r4   )r   r   r   nodesr   edges)r#   datar   s      r   test_from_graph6_bytes*TestFromGraph6Bytes.test_from_graph6_bytes    sS      &1779o6666GGIO
 
 	
 
r   c                 2   Sn[         R                  " U5      n[        U5      n[         R                  " U5      n[	        UR                  5       UR                  5       5      (       d   e[        UR                  5       UR                  5       5      (       d   eg )Nr1   )r   r   r   read_graph6r   r5   r   r6   )r#   r7   r   fhGins        r   test_read_equals_from_bytes/TestFromGraph6Bytes.test_read_equals_from_bytes(   sl      &T]nnR 1779ciik22221779ciik2222r   r'   N)r(   r)   r*   r+   r8   r>   r,   r'   r   r   r.   r.      s    
3r   r.   c                       \ rS rSrS rSrg)TestReadGraph61   c                     Sn[        U5      n[        R                  " U5      n[        U5      S:X  d   eU H&  n[	        U5      [        [        S5      5      :X  a  M&   e   g)z5Test for reading many graphs from a file into a list.s   DF{
D`{
DqK
D~{
r4      N)r   r   r;   lensortedlistrange)r#   r7   r<   glistr   s        r   test_read_many_graph6$TestReadGraph6.test_read_many_graph62   sR    &T]r"5zQA!9U1X... r   r'   N)r(   r)   r*   r+   rJ   r,   r'   r   r   rA   rA   1   s    /r   rA   c                      \ rS rSrSrS rS rS rS rS r	S r
\R                  R                  S	\R                  " 5       \R                   " 5       45      S
 5       rS rS rS r\R                  R                  SS5      S 5       rSrg)TestWriteGraph6<   z:Unit tests for writing a graph to a file in graph6 format.c                     [        5       n[        R                  " [        R                  " 5       U5        UR	                  5       S:X  d   eg N   >>graph6<<?
)r   r   write_graph6
null_graphgetvaluer#   results     r   test_null_graphTestWriteGraph6.test_null_graph?   s3    
0 $4444r   c                     [        5       n[        R                  " [        R                  " 5       U5        UR	                  5       S:X  d   eg Ns   >>graph6<<@
)r   r   rR   trivial_graphrT   rU   s     r   test_trivial_graph"TestWriteGraph6.test_trivial_graphD   s6    
((*F3 $4444r   c                     [        5       n[        R                  " [        R                  " S5      U5        UR	                  5       S:X  d   eg Nr4   s   >>graph6<<C~
r   r   rR   complete_graphrT   rU   s     r   test_complete_graph#TestWriteGraph6.test_complete_graphI   s8    
))!,f5 $5555r   c                     [        5       n[        R                  " [        R                  " S5      USS9  UR	                  5       S:X  d   eg NC   Fheadersv  ~?@B~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~w
r`   rU   s     r   test_large_complete_graph)TestWriteGraph6.test_large_complete_graphN   s:    
))"-veD $AAAAr   c                     [        5       n[        R                  " [        R                  " S5      USS9  UR	                  5       S:X  d   eg Nr4   Frg   s   C~
r`   rU   s     r   test_no_headerTestWriteGraph6.test_no_headerS   s9    
))!,fUC G+++r   c                     [        5       n[        R                  " SS5      n[        R                  " X!SS9  UR	                  5       S:X  d   eg N   	   Frg   s   N??F~z{~Fw^_~?~?^_?
)r   r   complete_bipartite_graphrR   rT   )r#   rV   r   s      r   test_complete_bipartite_graph-TestWriteGraph6.test_complete_bipartite_graphX   s?    ''1-
%0 $<<<<r   r   c                     [         R                  " [        R                  5         [        R                  " U[        5       5        S S S 5        g ! , (       d  f       g = fN)r   r   r   NetworkXNotImplementedrR   r   r#   r   s     r    test_no_directed_or_multi_graphs0TestWriteGraph6.test_no_directed_or_multi_graphs_   s0    ]]2445OOAwy) 655s    A
Ac                 \   [        [        S5      5      / SQ-    H  n[        R                  R	                  XU-  S-  US9n[        5       n[        R                  " X#SS9  UR                  5       R                  5       n[        U5      US-
  U-  S-  S	-   S
-  US:  a  SOS-   :X  a  M   e   g N   r/   /   r   r   r   H   r4   seedFrg   r   r2   rD   rq   r   )
rG   rH   r   random_graphsgnm_random_graphr   rR   rT   rstriprE   )r#   r$   ggstrs       r   test_lengthTestWriteGraph6.test_lengthd   s    eBi#;;A  11!UaZa1HA9DOOAE2==?))+Dt9!a%1!1A!5! ;AFqPQ RRRR <r   c                    [        [        S5      5      / SQ-    H  n[        R                  R	                  XU-  S-  US9n[        5       n[        R                  " X#5        UR                  S5        [        R                  " U5      n[        UR                  5       UR                  5       5      (       d   e[        UR                  5       UR                  5       5      (       a  M   e   g )Nr~   r   r4   r   r   )rG   rH   r   r   r   r   rR   seekr;   r   r5   r   r6   )r#   r$   r   fr   s        r   test_roundtripTestWriteGraph6.test_roundtripm   s    eBi#;;A  11!UaZa1HA	AOOA!FF1Iq!Aqwwy!'')4444qwwy!'')4444 <r   c                     [        US-  S5       n[        R                  " [        R                  " 5       U5        UR                  S5        UR                  5       S:X  d   e S S S 5        g ! , (       d  f       g = f)Nztest.g6zw+br   rQ   )openr    write_graph6_filer   rS   r   read)r#   tmp_pathr   s      r   test_write_pathTestWriteGraph6.test_write_pathw   sU    (Y&.!  !4FF1I668//// /..s   AA,,
A:edge)r   r   )r   r2   )r   r   c                     [         R                  " U/5      n[        5       n[         R                  " X#5        UR	                  S5        UR                  5       S:X  d   eg )Nr      >>graph6<<A_
)r   Graphr   rR   r   r   )r#   r   r   r   s       r   test_relabelingTestWriteGraph6.test_relabeling}   sE    HHdVI
	q	vvx,,,,r   r'   N)r(   r)   r*   r+   __doc__rW   r\   rb   ri   rm   rt   r   markparametrizer   
MultiGraphDiGraphrz   r   r   r   r   r,   r'   r   r   rM   rM   <   s    D5
5
6
B
,
= [[S2==?BJJL"AB* C*S50 [[V%>?- @-r   rM   c                      \ rS rSrS rS rS rS rS rS r	\
R                  R                  S\R                  " 5       \R                  " 5       45      S	 5       rS
 rS r\
R                  R                  SS5      S 5       rSrg)TestToGraph6Bytes   c                 f    [         R                  " 5       n[        R                  " U5      S:X  d   eg rP   )r   rS   r    to_graph6_bytesry   s     r   rW   !TestToGraph6Bytes.test_null_graph   s'    MMO!!!$(8888r   c                 f    [         R                  " 5       n[        R                  " U5      S:X  d   eg rZ   )r   r[   r    r   ry   s     r   r\   $TestToGraph6Bytes.test_trivial_graph   s*    !!!$(8888r   c                 d    [         R                  " [        R                  " S5      5      S:X  d   eg r_   )r    r   r   ra   )r#   s    r   rb   %TestToGraph6Bytes.test_complete_graph   s'    !!""3"3A"67;LLLLr   c                 f    [         R                  " S5      n[        R                  " USS9S:X  d   eg re   r   ra   r    r   ry   s     r   ri   +TestToGraph6Bytes.test_large_complete_graph   s.    b!!!!E26SSSSr   c                 f    [         R                  " S5      n[        R                  " USS9S:X  d   eg rl   r   ry   s     r   rm    TestToGraph6Bytes.test_no_header   s-    a !!!E2g===r   c                 h    [         R                  " SS5      n[        R                  " USS9S:X  d   eg rp   )r   rs   r    r   ry   s     r   rt   /TestToGraph6Bytes.test_complete_bipartite_graph   s0    ''1-!!!E26NNNNr   r   c                     [         R                  " [        R                  5         [        R
                  " U5        S S S 5        g ! , (       d  f       g = frw   )r   r   r   rx   r    r   ry   s     r   rz   2TestToGraph6Bytes.test_no_directed_or_multi_graphs   s.    ]]2445q! 655r   c                 (   [        [        S5      5      / SQ-    Hu  n[        R                  R	                  XU-  S-  US9n[
        R                  " USS9R                  5       n[        U5      US-
  U-  S-  S	-   S
-  US:  a  SOS-   :X  a  Mu   e   g r}   )	rG   rH   r   r   r   r    r   r   rE   )r#   r$   r   r   s       r   r   TestToGraph6Bytes.test_length   s    eBi#;;A  11!UaZa1HA%%a6==?Dt9!a%1!1A!5! ;AFqPQ RRRR	 <r   c                    [        [        S5      5      / SQ-    H  n[        R                  R	                  XU-  S-  US9n[
        R                  " U5      n[        R                  " UR                  5       5      n[        UR                  5       UR                  5       5      (       d   e[        UR                  5       UR                  5       5      (       a  M   e   g )Nr~   r   r4   r   )rG   rH   r   r   r   r    r   r   r   r   r5   r   r6   )r#   r$   r   r7   r   s        r   r    TestToGraph6Bytes.test_roundtrip   s    eBi#;;A  11!UaZa1HA%%a(D$$T[[]3Aqwwy!'')4444qwwy!'')4444 <r   r   r   c                 j    [         R                  " U/5      n[        R                  " U5      S:X  d   eg )Nr   )r   r   r    r   )r#   r   r   s      r   r   !TestToGraph6Bytes.test_relabeling   s,    HHdV!!!$(9999r   r'   N)r(   r)   r*   r+   rW   r\   rb   ri   rm   rt   r   r   r   r   r   r   rz   r   r   r   r,   r'   r   r   r   r      s    99MT>O [[S2==?BJJL"AB" C"S5 [[V%>?: @:r   r   )ior   r   networkxr   networkx.readwrite.graph6	readwritegraph6r    networkx.utilsr   r   r   r   r   r.   rA   rM   r   r'   r   r   <module>r      sY       & & 3'JK K3 3$/ /G- G-T/: /:r   