
    ިsg                         d dl mZ d dlZd dlZd dlmc mZ d dl	m
Z
mZ  G d d      Z G d d      Z G d d	      Z G d
 d      Z G d d      Zy)    )BytesION)edges_equalnodes_equalc                       e Zd Zd Zy)TestGraph6Utilsc                 @   dD ]  }t        j                  t        j                  |            d   |k(  sJ t        j                  t        j                  |            d   g k(  sJ t        j                  t        j                  |      ddgz         d   ddgk(  rJ  y )N)
r      *   >   ?   @   i i  i-v l   ? r   r	   r
   +   )g6	data_to_n	n_to_data)selfis     W/var/www/html/venv/lib/python3.12/site-packages/networkx/readwrite/tests/test_graph6.pytest_n_data_n_conversionz(TestGraph6Utils.test_n_data_n_conversion   s    M 	KA<<Q03q888<<Q03r999<<Q2r( :;A>2r(JJJ	K    N)__name__
__module____qualname__r    r   r   r   r   
   s    Kr   r   c                       e Zd Zd Zd Zy)TestFromGraph6Bytesc                     d}t        j                  |      }t        |j                         g d      sJ t	        |j                         g d      sJ y )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_bytesz*TestFromGraph6Bytes.test_from_graph6_bytes   sK      &1779o666GGIO
 	
 
r   c                    d}t        j                  |      }t        |      }t        j                  |      }t	        |j                         |j                               sJ t        |j                         |j                               sJ y )Nr   )r"   r#   r   read_graph6r   r$   r   r%   )r   r&   r'   fhGins        r   test_read_equals_from_bytesz/TestFromGraph6Bytes.test_read_equals_from_bytes   sf      &T]nnR 1779ciik2221779ciik222r   N)r   r   r   r(   r-   r   r   r   r   r      s    
3r   r   c                       e Zd Zd Zy)TestReadGraph6c                     d}t        |      }t        j                  |      }t        |      dk(  sJ |D ]$  }t	        |      t        t        d            k(  r$J  y)z5Test for reading many graphs from a file into a list.s   DF{
D`{
DqK
D~{
r!      N)r   r"   r*   lensortedlistrange)r   r&   r+   glistr'   s        r   test_read_many_graph6z$TestReadGraph6.test_read_many_graph6%   sW    &T]r"5zQ 	/A!9U1X...	/r   N)r   r   r   r7   r   r   r   r/   r/   $   s    /r   r/   c                      e Zd ZdZd Zd Zd Zd Zd Zd Z	e
j                  j                  d ej                          ej                         f      d	        Zd
 Zd Zd Ze
j                  j                  dd      d        Zy)TestWriteGraph6z:Unit tests for writing a graph to a file in graph6 format.c                     t               }t        j                  t        j                         |       |j	                         dk(  sJ y N   >>graph6<<?
)r   r"   write_graph6
null_graphgetvaluer   results     r   test_null_graphzTestWriteGraph6.test_null_graph2   s3    
0 $4444r   c                     t               }t        j                  t        j                         |       |j	                         dk(  sJ y Ns   >>graph6<<@
)r   r"   r=   trivial_graphr?   r@   s     r   test_trivial_graphz"TestWriteGraph6.test_trivial_graph7   s6    
((*F3 $4444r   c                     t               }t        j                  t        j                  d      |       |j	                         dk(  sJ y Nr!   s   >>graph6<<C~
r   r"   r=   complete_graphr?   r@   s     r   test_complete_graphz#TestWriteGraph6.test_complete_graph<   s8    
))!,f5 $5555r   c                     t               }t        j                  t        j                  d      |d       |j	                         dk(  sJ y NC   Fheadersv  ~?@B~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~w
rI   r@   s     r   test_large_complete_graphz)TestWriteGraph6.test_large_complete_graphA   s:    
))"-veD $AAAAr   c                     t               }t        j                  t        j                  d      |d       |j	                         dk(  sJ y Nr!   FrO   s   C~
rI   r@   s     r   test_no_headerzTestWriteGraph6.test_no_headerF   s9    
))!,fUC G+++r   c                     t               }t        j                  dd      }t        j                  ||d       |j	                         dk(  sJ y N   	   FrO   s   N??F~z{~Fw^_~?~?^_?
)r   r"   complete_bipartite_graphr=   r?   )r   rA   r'   s      r   test_complete_bipartite_graphz-TestWriteGraph6.test_complete_bipartite_graphK   sA    ''1-
6%0 $<<<<r   r'   c                     t        j                  t        j                        5  t        j                  |t                      d d d        y # 1 sw Y   y xY wN)pytestraisesr"   NetworkXNotImplementedr=   r   r   r'   s     r    test_no_directed_or_multi_graphsz0TestWriteGraph6.test_no_directed_or_multi_graphsR   s9    ]]2445 	*OOAwy)	* 	* 	*s   AAc                 b   t        t        d            g dz   D ]  }t        j                  j	                  |||z  dz  |      }t               }t        j                  ||d       |j                         j                         }t        |      |dz
  |z  dz  d	z   d
z  |dk  rdndz   k(  rJ  y N      /   r   r   r   H   r!   seedFrO   r	   r   r1   rW   r   )
r4   r5   r"   random_graphsgnm_random_graphr   r=   r?   rstripr2   )r   r   ggstrs       r   test_lengthzTestWriteGraph6.test_lengthW   s    eBi#;; 	SA  11!QUaZa1HA9DOOAtE2==?))+Dt9!a%1!1A!5! ;AFqPQ RRRR	Sr   c                    t        t        d            g dz   D ]  }t        j                  j	                  |||z  dz  |      }t               }t        j                  ||       |j                  d       t        j                  |      }t        |j                         |j                               sJ t        |j                         |j                               rJ  y )Nrd   re   r!   ri   r   )r4   r5   r"   rk   rl   r   r=   seekr*   r   r$   r   r%   )r   r   r'   fHs        r   test_roundtripzTestWriteGraph6.test_roundtrip`   s    eBi#;; 	5A  11!QUaZa1HA	AOOAq!FF1Iq!Aqwwy!'')444qwwy!'')444	5r   c                     t        |dz  d      5 }t        j                  t        j                         |       |j                  d       |j                         dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nztest.g6zw+br   r<   )openr   write_graph6_filer"   r>   rr   read)r   tmp_pathrs   s      r   test_write_pathzTestWriteGraph6.test_write_pathj   s^    (Y&. 	0!  !4FF1I668////	0 	0 	0s   AA))A2edge)r   r	   )r	   r   )r	   r
   c                     t        j                  |g      }t               }t        j                  ||       |j	                  d       |j                         dk(  sJ y )Nr      >>graph6<<A_
)r"   Graphr   r=   rr   ry   )r   r|   r'   rs   s       r   test_relabelingzTestWriteGraph6.test_relabelingp   sG    HHdVI
1	q	vvx,,,,r   N)r   r   r   __doc__rB   rF   rK   rQ   rT   rZ   r]   markparametrizer"   
MultiGraphDiGraphra   rp   ru   r{   r   r   r   r   r9   r9   /   s    D5
5
6
B
,
= [[S=2==?JBJJL"AB* C*S50 [[V%>?- @-r   r9   c                      e Zd Zd Zd Zd Zd Zd Zd Ze	j                  j                  d ej                          ej                         f      d        Zd	 Zd
 Ze	j                  j                  dd      d        Zy)TestToGraph6Bytesc                 `    t        j                         }t        j                  |      dk(  sJ y r;   )r"   r>   r   to_graph6_bytesr`   s     r   rB   z!TestToGraph6Bytes.test_null_graphz   s'    MMO!!!$(8888r   c                 `    t        j                         }t        j                  |      dk(  sJ y rD   )r"   rE   r   r   r`   s     r   rF   z$TestToGraph6Bytes.test_trivial_graph~   s*    !!!$(8888r   c                 ^    t        j                  t        j                  d            dk(  sJ y rH   )r   r   r"   rJ   )r   s    r   rK   z%TestToGraph6Bytes.test_complete_graph   s'    !!""3"3A"67;LLLLr   c                 f    t        j                  d      }t        j                  |d      dk(  sJ y rM   r"   rJ   r   r   r`   s     r   rQ   z+TestToGraph6Bytes.test_large_complete_graph   s.    b!!!!E26SSSSr   c                 f    t        j                  d      }t        j                  |d      dk(  sJ y rS   r   r`   s     r   rT   z TestToGraph6Bytes.test_no_header   s-    a !!!E2g===r   c                 h    t        j                  dd      }t        j                  |d      dk(  sJ y rV   )r"   rY   r   r   r`   s     r   rZ   z/TestToGraph6Bytes.test_complete_bipartite_graph   s0    ''1-!!!E26NNNNr   r'   c                     t        j                  t        j                        5  t	        j
                  |       d d d        y # 1 sw Y   y xY wr\   )r]   r^   r"   r_   r   r   r`   s     r   ra   z2TestToGraph6Bytes.test_no_directed_or_multi_graphs   s7    ]]2445 	"q!	" 	" 	"s   AAc                 ,   t        t        d            g dz   D ]x  }t        j                  j	                  |||z  dz  |      }t        j                  |d      j                         }t        |      |dz
  |z  dz  d	z   d
z  |dk  rdndz   k(  rxJ  y rc   )	r4   r5   r"   rk   rl   r   r   rm   r2   )r   r   r'   ro   s       r   rp   zTestToGraph6Bytes.test_length   s    eBi#;; 	SA  11!QUaZa1HA%%a6==?Dt9!a%1!1A!5! ;AFqPQ RRRR		Sr   c                    t        t        d            g dz   D ]  }t        j                  j	                  |||z  dz  |      }t        j                  |      }t        j                  |j                               }t        |j                         |j                               sJ t        |j                         |j                               rJ  y )Nrd   re   r!   ri   )r4   r5   r"   rk   rl   r   r   r#   rm   r   r$   r   r%   )r   r   r'   r&   rt   s        r   ru   z TestToGraph6Bytes.test_roundtrip   s    eBi#;; 	5A  11!QUaZa1HA%%a(D$$T[[]3Aqwwy!'')444qwwy!'')444	5r   r|   r}   c                 d    t        j                  |g      }t        j                  |      dk(  sJ y )Nr   )r"   r   r   r   )r   r|   r'   s      r   r   z!TestToGraph6Bytes.test_relabeling   s,    HHdV!!!$(9999r   N)r   r   r   rB   rF   rK   rQ   rT   rZ   r]   r   r   r"   r   r   ra   rp   ru   r   r   r   r   r   r   y   s    99MT>O [[S=2==?JBJJL"AB" C"S5 [[V%>?: @:r   r   )ior   r]   networkxr"   networkx.readwrite.graph6	readwritegraph6r   networkx.utilsr   r   r   r   r/   r9   r   r   r   r   <module>r      sN       & & 3K K3 3$/ /G- G-T/: /:r   