
    Gd^                     n    d dl Z d dlmZ d dlZd dlZd dlmZmZ  G d d          Z	 G d d          Z
dS )    N)BytesIO)edges_equalnodes_equalc                   &    e Zd Zd Zd Zd Zd ZdS )TestSparseGraph6c                     d}t          j        |          }t          t          |                                          g d          sJ t          |                                g d          sJ d S )N   :Q___eDcdFcDeFcE`GaJ`IaHbKNbLMr                           	   
                        ))r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )nxfrom_sparse6_bytesr   sortednodesr   edges)selfdataGs      Elib/python3.11/site-packages/networkx/readwrite/tests/test_sparse6.pytest_from_sparse6_bytesz(TestSparseGraph6.test_from_sparse6_bytes   s    0!$''17799JJJ
 
 	
 	
 	
 GGII  
 
 	
 	
 	
 	
 	
    c                     d}t          j        |          }t          |          t           j        k    sJ d}t          j        |          }t          |          t           j        k    sJ d S )Ns   :Ans   :Ab)r   r   typeGraph
MultiGraph)r!   
graph_datar#   multigraph_dataMs        r$    test_from_bytes_multigraph_graphz1TestSparseGraph6.test_from_bytes_multigraph_graph3   sd    
!*--Aww"("""" !/22Aww"-''''''r&   c                 P   d}t          j        |          }t          |          }t          j        |          }t	          |                                |                                          sJ t          |                                |                                          sJ d S )Nr	   )r   r   r   read_sparse6r   r   r   r    )r!   r"   r#   fhGins        r$   test_read_sparse6z"TestSparseGraph6.test_read_sparse6;   s    0!$''T]]ob!!17799ciikk2222217799ciikk2222222r&   c                     d}t          |          }t          j        |          }t          |          dk    sJ |D ](}t	          |                                g d          sJ )d S )Ns>   :Q___eDcdFcDeFcE`GaJ`IaHbKNbLM
:Q___dCfDEdcEgcbEGbFIaJ`JaHN`IMr   r
   )r   r   r0   lenr   r   )r!   r"   r1   glistr#   s        r$   test_read_many_graph6z&TestSparseGraph6.test_read_many_graph6C   s    UT]]##5zzQ 	 	A		NNN     	 	r&   N)__name__
__module____qualname__r%   r.   r3   r7    r&   r$   r   r   
   sQ        &
 &
 &
P( ( (3 3 3
 
 
 
 
r&   r   c                   Z    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd ZdS )TestWriteSparse6zUnit tests for writing graphs in the sparse6 format.

    Most of the test cases were checked against the sparse6 encoder in Sage.

    c                     t          j                    }t                      }t          j        ||           |                                dk    sJ d S )N   >>sparse6<<:?
)r   
null_graphr   write_sparse6getvaluer!   r#   results      r$   test_null_graphz TestWriteSparse6.test_null_graphW   sK    MOO
F###  $6666666r&   c                     t          j                    }t                      }t          j        ||           |                                dk    sJ d S )Ns   >>sparse6<<:@
)r   trivial_graphr   rA   rB   rC   s      r$   test_trivial_graphz#TestWriteSparse6.test_trivial_graph]   sN    
F###  $6666666r&   c                     t          j        d          }t                      }t          j        ||           |                                dk    sJ d S )Nr   s   >>sparse6<<:D
r   empty_graphr   rA   rB   rC   s      r$   test_empty_graphz!TestWriteSparse6.test_empty_graphc   sO    N1
F###  $6666666r&   c                     t          j        d          }t                      }t          j        ||           |                                dk    sJ d S )ND   s   >>sparse6<<:~?@C
rJ   rC   s      r$   test_large_empty_graphz'TestWriteSparse6.test_large_empty_graphi   sO    N2
F###  $9999999r&   c                     t          j        d          }t                      }t          j        ||           |                                dk    sJ d S )Ni s   >>sparse6<<:~~???~?@
rJ   rC   s      r$   test_very_large_empty_graphz,TestWriteSparse6.test_very_large_empty_grapho   sO    N6""
F###  $=======r&   c                     t          j        d          }t                      }t          j        ||           |                                dk    sJ d S )Nr   s   >>sparse6<<:CcKI
r   complete_graphr   rA   rB   rC   s      r$   test_complete_graphz$TestWriteSparse6.test_complete_graphu   sP    a  
F###  $9999999r&   c                     t          j        d          }t                      }t          j        ||d           |                                dk    sJ d S )Nr   Fheaders   :CcKI
rS   rC   s      r$   test_no_headerzTestWriteSparse6.test_no_header{   sT    a  
F51111  J......r&   c                     d}t          |d          D ][\  }}t          j        |          }t                      }t          j        ||d           |                                |dz   k    sJ \d S )N)s   :Cdvs   :DaYns   :EaYnNs   :FaYnLs   :GaYnLzr   )startFrW      
)	enumerater   
path_graphr   rA   rB   )r!   codesncoder#   rD   s         r$   test_paddingzTestWriteSparse6.test_padding   s    E a000 	5 	5GAta  AYYFQu5555??$$u44444		5 	5r&   c                     t          j        dd          }t                      }t          j        ||           d}|                                |k    sJ d S )Nr   r   s<   >>sparse6<<:Nk?G`cJ?G`cJ?G`cJ?G`cJ?G`cJ?G`cJ?G`cJ?G`cJ?G`cJ
)r   complete_bipartite_graphr   rA   rB   )r!   r#   rD   expecteds       r$   test_complete_bipartitez(TestWriteSparse6.test_complete_bipartite   sV    '1--
F###;  H,,,,,,r&   c                 F   t          t          d                    g dz   D ]}t          d|z  ||z  dz            }t          j                            |||          }t                      }t          j        ||d           |                                	                                }t          j
        |          }|                                |                                k    sJ t          |                                |                                          sJ d S )Nr   )   /   >   ?   @   H   r   )seedFrW   )listrangeminr   random_graphsgnm_random_graphr   rA   rB   rstripr   orderr   r    )r!   imggstrg2s         r$   test_read_write_inversez(TestWriteSparse6.test_read_write_inverse   s    eBii#;#;#;; 		6 		6AAE1q5A:&&A 11!QQ1??A99DQU3333==??))++D&t,,B88::****rxxzz17799555555		6 		6r&   c                     t          j        t          j                  5  t          j        t          j                    t                                 d d d            d S # 1 swxY w Y   d S )N)pytestraisesr   NetworkXNotImplementedrA   DiGraphr   )r!   s    r$   test_no_directed_graphsz(TestWriteSparse6.test_no_directed_graphs   s    ]2455 	6 	6RZ\\799555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   3AA#&A#c                 f   t          j                    5 }|j        }d d d            n# 1 swxY w Y   t          j        t          j                    |           t          |d          }|                                dk    sJ |                                 dd l	}|
                    |           d S )Nrb)moder?   r   )tempfileNamedTemporaryFilenamer   rA   r@   openreadcloseosremove)r!   ffullfilenamer1   r   s        r$   test_write_pathz TestWriteSparse6.test_write_path   s     (** 	"a6L	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	,777,T***wwyy.....



			
		,s   (,,N)r8   r9   r:   __doc__rE   rH   rL   rO   rQ   rU   rY   rb   rf   r{   r   r   r;   r&   r$   r=   r=   P   s         7 7 77 7 77 7 7: : :> > >: : :/ / /5 5 5- - -
6 
6 
66 6 6         r&   r=   )r   ior   r}   networkxr   networkx.utilsr   r   r   r=   r;   r&   r$   <module>r      s                3 3 3 3 3 3 3 3C C C C C C C CL]  ]  ]  ]  ]  ]  ]  ]  ]  ] r&   