
    \Mh                     f    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 )    )BytesION)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      e/var/www/html/test/jupyter/venv/lib/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                  sJ d}t          j        |          }t          |t           j                  sJ d S )Ns   :Ans   :Ab)r   r   
isinstanceGraph
MultiGraph)r!   
graph_datar#   multigraph_dataMs        r$    test_from_bytes_multigraph_graphz1TestSparseGraph6.test_from_bytes_multigraph_graph2   sb    
!*--!RX&&&&& !/22!R]+++++++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_graph6B   s    Q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_graphV   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_graphb   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_graphh   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_graphn   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_grapht   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_headerz   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                     t          |dz            }t          j        t          j                    |           t	          |d          5 }|                                dk    sJ 	 d d d            d S # 1 swxY w Y   d S )Nztest.s6rb)moder?   )strr   rA   r@   openread)r!   tmp_pathfullfilenamer1   s       r$   test_write_pathz TestWriteSparse6.test_write_path   s    8i/00
,777,T*** 	3b7799 222222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   
A33A7:A7N)r8   r9   r:   __doc__rE   rH   rL   rO   rQ   rU   rY   rb   rf   r{   r   r   r;   r&   r$   r=   r=   O   s         7 7 77 7 77 7 7: : :> > >: : :/ / /5 5 5- - -
6 
6 
66 6 63 3 3 3 3r&   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W3 W3 W3 W3 W3 W3 W3 W3 W3 W3r&   