
    çg                         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dS )    )BytesION)edges_equalnodes_equalc                       e Zd Zd ZdS )TestGraph6Utilsc                 J   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    sJ d S )N)
r      *   >   ?   @   i i  i-v l   ? r   r	   r
   +   )g6	data_to_n	n_to_data)selfis     `/var/www/html/ai-engine/env/lib/python3.11/site-packages/networkx/readwrite/tests/test_graph6.pytest_n_data_n_conversionz(TestGraph6Utils.test_n_data_n_conversion   s    M 	K 	KA<Q003q8888<Q003r9999<Q2r( :;;A>2r(JJJJJ	K 	K    N)__name__
__module____qualname__r    r   r   r   r   
   s(        K K K K Kr   r   c                       e Zd Zd Zd ZdS )TestFromGraph6Bytesc                     d}t          j        |          }t          |                                g d          sJ t	          |                                g d          sJ d S )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   ss     &&17799ooo66666GGIIOOO
 
 	
 	
 	
 	
 	
r   c                 P   d}t          j        |          }t          |          }t          j        |          }t	          |                                |                                          sJ t          |                                |                                          sJ d S )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   s     &&T]]nR  17799ciikk2222217799ciikk2222222r   N)r   r   r   r(   r-   r   r   r   r   r      s2        
 
 
3 3 3 3 3r   r   c                       e Zd Zd ZdS )TestReadGraph6c                     d}t          |          }t          j        |          }t          |          dk    sJ |D ]1}t	          |          t          t          d                    k    sJ 2dS )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%   ss    &T]]r""5zzQ 	/ 	/A!99U1XX.....	/ 	/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                            d ej                     ej                    f          d	             Zd
 Zd Zd Ze
j                            dd          d             ZdS )TestWriteGraph6z:Unit tests for writing a graph to a file in graph6 format.c                     t                      }t          j        t          j                    |           |                                dk    sJ d S N   >>graph6<<?
)r   r"   write_graph6
null_graphgetvaluer   results     r   test_null_graphzTestWriteGraph6.test_null_graph2   sE    
000  $4444444r   c                     t                      }t          j        t          j                    |           |                                dk    sJ d S Ns   >>graph6<<@
)r   r"   r=   trivial_graphr?   r@   s     r   test_trivial_graphz"TestWriteGraph6.test_trivial_graph7   sH    
(**F333  $4444444r   c                     t                      }t          j        t          j        d          |           |                                dk    sJ d S Nr!   s   >>graph6<<C~
r   r"   r=   complete_graphr?   r@   s     r   test_complete_graphz#TestWriteGraph6.test_complete_graph<   sJ    
)!,,f555  $5555555r   c                     t                      }t          j        t          j        d          |d           |                                dk    sJ d S NC   Fheadersv  ~?@B~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~w
rI   r@   s     r   test_large_complete_graphz)TestWriteGraph6.test_large_complete_graphA   sO    
)"--veDDDD  $AAAAAAAr   c                     t                      }t          j        t          j        d          |d           |                                dk    sJ d S Nr!   FrO   s   C~
rI   r@   s     r   test_no_headerzTestWriteGraph6.test_no_headerF   sN    
)!,,fUCCCC  G++++++r   c                     t                      }t          j        dd          }t          j        ||d           |                                dk    sJ d S 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   sV    '1--
6%0000  $<<<<<<<r   r'   c                     t          j        t          j                  5  t          j        |t                                 d d d            d S # 1 swxY w Y   d S N)pytestraisesr"   NetworkXNotImplementedr=   r   r   r'   s     r    test_no_directed_or_multi_graphsz0TestWriteGraph6.test_no_directed_or_multi_graphsR   s    ]2455 	* 	*OAwyy)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   "AAAc                    t          t          d                    g dz   D ]}t          j                            |||z  dz  |          }t                      }t          j        ||d           |                                                                }t          |          |dz
  |z  dz  d	z   d
z  |dk     rdndz   k    sJ d S 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    eBii#;#;#;; 	S 	SA 11!QUaZa1HHA99DOAtE2222==??))++Dt99!a%1!1A!5! ;AFFqqPQ RRRRRR	S 	Sr   c                    t          t          d                    g dz   D ]}t          j                            |||z  dz  |          }t                      }t          j        ||           |                    d           t          j        |          }t          |
                                |
                                          sJ t          |                                |                                          sJ d S )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    eBii#;#;#;; 	5 	5A 11!QUaZa1HHA		AOAq!!!FF1IIIq!!Aqwwyy!''))44444qwwyy!''))444444	5 	5r   c                 
   t          |dz  d          5 }t          j        t          j                    |           |                    d           |                                dk    sJ 	 d d d            d S # 1 swxY w Y   d S )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44FF1III6688//////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   AA88A<?A<edge)r   r	   )r	   r   )r	   r
   c                     t          j        |g          }t                      }t          j        ||           |                    d           |                                dk    sJ d S )Nr      >>graph6<<A_
)r"   Graphr   r=   rr   ry   )r   r|   r'   rs   s       r   test_relabelingzTestWriteGraph6.test_relabelingp   s]    HdVII
1	q			vvxx,,,,,,,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D5 5 5
5 5 5
6 6 6
B B B
, , ,
= = = [S=2=??JBJLL"ABB* * CB*S S S5 5 50 0 0 [V%>??- - @?- - -r   r9   c                      e Zd Zd Zd Zd Zd Zd Zd Ze	j
                            d ej                     ej                    f          d             Zd	 Zd
 Ze	j
                            dd          d             ZdS )TestToGraph6Bytesc                 `    t          j                    }t          j        |          dk    sJ d S r;   )r"   r>   r   to_graph6_bytesr`   s     r   rB   z!TestToGraph6Bytes.test_null_graphz   s0    MOO!!$$(8888888r   c                 `    t          j                    }t          j        |          dk    sJ d S rD   )r"   rE   r   r   r`   s     r   rF   z$TestToGraph6Bytes.test_trivial_graph~   s3    !!$$(8888888r   c                 ^    t          j        t          j        d                    dk    sJ d S rH   )r   r   r"   rJ   )r   s    r   rK   z%TestToGraph6Bytes.test_complete_graph   s0    !""3A"6"677;LLLLLLLr   c                 f    t          j        d          }t          j        |d          dk    sJ d S rM   r"   rJ   r   r   r`   s     r   rQ   z+TestToGraph6Bytes.test_large_complete_graph   s:    b!!!!E2226SSSSSSSr   c                 f    t          j        d          }t          j        |d          dk    sJ d S rS   r   r`   s     r   rT   z TestToGraph6Bytes.test_no_header   s9    a  !!E222g======r   c                 h    t          j        dd          }t          j        |d          dk    sJ d S rV   )r"   rY   r   r   r`   s     r   rZ   z/TestToGraph6Bytes.test_complete_bipartite_graph   s<    '1--!!E2226NNNNNNNr   r'   c                     t          j        t          j                  5  t	          j        |           d d d            d S # 1 swxY w Y   d S r\   )r]   r^   r"   r_   r   r   r`   s     r   ra   z2TestToGraph6Bytes.test_no_directed_or_multi_graphs   s    ]2455 	" 	"q!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   AAAc                 L   t          t          d                    g dz   D ]}t          j                            |||z  dz  |          }t          j        |d                                          }t          |          |dz
  |z  dz  d	z   d
z  |dk     rdndz   k    sJ d S rc   )	r4   r5   r"   rk   rl   r   r   rm   r2   )r   r   r'   ro   s       r   rp   zTestToGraph6Bytes.test_length   s    eBii#;#;#;; 	S 	SA 11!QUaZa1HHA%a666==??Dt99!a%1!1A!5! ;AFFqqPQ RRRRRR		S 	Sr   c                    t          t          d                    g dz   D ]}t          j                            |||z  dz  |          }t          j        |          }t          j        |                                          }t          |
                                |
                                          sJ t          |                                |                                          sJ d S )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    eBii#;#;#;; 	5 	5A 11!QUaZa1HHA%a((D$T[[]]33Aqwwyy!''))44444qwwyy!''))444444	5 	5r   r|   r}   c                 d    t          j        |g          }t          j        |          dk    sJ d S )Nr   )r"   r   r   r   )r   r|   r'   s      r   r   z!TestToGraph6Bytes.test_relabeling   s6    HdV!!$$(999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 99 9 9M M MT T T> > >O O O [S=2=??JBJLL"ABB" " CB"S S S5 5 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      sB              & & & & & & & & & 3 3 3 3 3 3 3 3K K K K K K K K3 3 3 3 3 3 3 3$/ / / / / / / /G- G- G- G- G- G- G- G-T/: /: /: /: /: /: /: /: /: /:r   