
    h                         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 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 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     V/var/www/html/env/lib/python3.13/site-packages/networkx/readwrite/tests/test_graph6.py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     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   r%   )r   r&   )r
   r%   )r
   r&   )r$   r%   )r$   r&   )r%   r&   )nxfrom_graph6_bytesr   nodesr   edges)r   dataGs      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 )Nr#   )r'   r(   r   read_graph6r   r)   r   r*   )r   r+   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   r-   r3   r   r   r   r   r    r       s    
3r   r    c                       \ rS rSrS rSrg)TestReadGraph6$   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~{
r&      N)r   r'   r0   lensortedlistrange)r   r+   r1   glistr,   s        r   test_read_many_graph6$TestReadGraph6.test_read_many_graph6%   sR    &T]r"5zQA!9U1X... r   r   N)r   r   r   r   r?   r   r   r   r   r6   r6   $   s    /r   r6   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_graph2   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'   rG   trivial_graphrI   rJ   s     r   test_trivial_graph"TestWriteGraph6.test_trivial_graph7   s6    
((*F3 $4444r   c                     [        5       n[        R                  " [        R                  " S5      U5        UR	                  5       S:X  d   eg Nr&   s   >>graph6<<C~
r   r'   rG   complete_graphrI   rJ   s     r   test_complete_graph#TestWriteGraph6.test_complete_graph<   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
rU   rJ   s     r   test_large_complete_graph)TestWriteGraph6.test_large_complete_graphA   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 Nr&   Fr\   s   C~
rU   rJ   s     r   test_no_headerTestWriteGraph6.test_no_headerF   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   	   Fr\   s   N??F~z{~Fw^_~?~?^_?
)r   r'   complete_bipartite_graphrG   rI   )r   rK   r,   s      r   test_complete_bipartite_graph-TestWriteGraph6.test_complete_bipartite_graphK   s?    ''1-
%0 $<<<<r   r,   c                     [         R                  " [        R                  5         [        R                  " U[        5       5        S S S 5        g ! , (       d  f       g = fN)pytestraisesr'   NetworkXNotImplementedrG   r   r   r,   s     r    test_no_directed_or_multi_graphs0TestWriteGraph6.test_no_directed_or_multi_graphsR   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      rC   r   r   r   H   r&   seedFr\   r
   r$   r9   rf   r   )
r<   r=   r'   random_graphsgnm_random_graphr   rG   rI   rstripr:   )r   r   ggstrs       r   test_lengthTestWriteGraph6.test_lengthW   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 )Nru   rv   r&   ry   r   )r<   r=   r'   r{   r|   r   rG   seekr0   r   r)   r   r*   )r   r   r,   fHs        r   test_roundtripTestWriteGraph6.test_roundtrip`   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   rF   )openr   write_graph6_filer'   rH   r   read)r   tmp_pathr   s      r   test_write_pathTestWriteGraph6.test_write_pathj   sU    (Y&.!  !4FF1I668//// /..s   AA,,
A:edge)r   r
   )r
   r$   )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   rG   r   r   )r   r   r,   r   s       r   test_relabelingTestWriteGraph6.test_relabelingp   sE    HHdVI
	q	vvx,,,,r   r   N)r   r   r   r   __doc__rL   rQ   rW   r^   rb   ri   rm   markparametrizer'   
MultiGraphDiGraphrq   r   r   r   r   r   r   r   r   rB   rB   /   s    D5
5
6
B
,
= [[S2==?BJJL"AB* C*S50 [[V%>?- @-r   rB   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)TestToGraph6Bytesy   c                 f    [         R                  " 5       n[        R                  " U5      S:X  d   eg rE   )r'   rH   r   to_graph6_bytesrp   s     r   rL   !TestToGraph6Bytes.test_null_graphz   s'    MMO!!!$(8888r   c                 f    [         R                  " 5       n[        R                  " U5      S:X  d   eg rO   )r'   rP   r   r   rp   s     r   rQ   $TestToGraph6Bytes.test_trivial_graph~   s*    !!!$(8888r   c                 d    [         R                  " [        R                  " S5      5      S:X  d   eg rT   )r   r   r'   rV   )r   s    r   rW   %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 rZ   r'   rV   r   r   rp   s     r   r^   +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 ra   r   rp   s     r   rb    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 re   )r'   rh   r   r   rp   s     r   ri   /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rl   )rm   rn   r'   ro   r   r   rp   s     r   rq   2TestToGraph6Bytes.test_no_directed_or_multi_graphs   s.    ]]2445q! 655s   A
A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 rt   )	r<   r=   r'   r{   r|   r   r   r}   r:   )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 )Nru   rv   r&   ry   )r<   r=   r'   r{   r|   r   r   r(   r}   r   r)   r   r*   )r   r   r,   r+   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   rL   rQ   rW   r^   rb   ri   rm   r   r   r'   r   r   rq   r   r   r   r   r   r   r   r   r   y   s    99MT>O [[S2==?BJJL"AB" C"S5 [[V%>?: @:r   r   )ior   rm   networkxr'   networkx.readwrite.graph6	readwritegraph6r   networkx.utilsr   r   r   r    r6   rB   r   r   r   r   <module>r      sN       & & 3K K3 3$/ /G- G-T/: /:r   