o
    ˷e^                     @   sT   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 dZ	G dd dZ
dS )    N)BytesIO)edges_equalnodes_equalc                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestSparseGraph6c                 C   sB   d}t |}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G r!   \/var/www/ideatree/venv/lib/python3.10/site-packages/networkx/readwrite/tests/test_sparse6.pytest_from_sparse6_bytes   s   

z(TestSparseGraph6.test_from_sparse6_bytesc                 C   sD   d}t |}t|t jksJ d}t |}t|t jks J d S )Ns   :Ans   :Ab)r   r   typeGraph
MultiGraph)r   
graph_datar    multigraph_dataMr!   r!   r"    test_from_bytes_multigraph_graph3   s   

z1TestSparseGraph6.test_from_bytes_multigraph_graphc                 C   sP   d}t |}t|}t |}t| | sJ t| | s&J d S )Nr   )r   r   r   read_sparse6r   r   r   r   )r   r   r    fhGinr!   r!   r"   test_read_sparse6;   s   

z"TestSparseGraph6.test_read_sparse6c                 C   sJ   d}t |}t|}t|dksJ |D ]}t| g ds"J qd S )Ns>   :Q___eDcdFcDeFcE`GaJ`IaHbKNbLM
:Q___dCfDEdcEgcbEGbFIaJ`JaHN`IMr	   r   )r   r   r+   lenr   r   )r   r   r,   glistr    r!   r!   r"   test_read_many_graph6C   s   

z&TestSparseGraph6.test_read_many_graph6N)__name__
__module____qualname__r#   r*   r.   r1   r!   r!   r!   r"   r   
   s
    (r   c                   @   sp   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dd Z
dd Zdd Zdd Zdd Zd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                 C   .   t  }t }t || | dksJ d S )N   >>sparse6<<:?
)r   
null_graphr   write_sparse6getvaluer   r    resultr!   r!   r"   test_null_graphW      z TestWriteSparse6.test_null_graphc                 C   r6   )Ns   >>sparse6<<:@
)r   trivial_graphr   r9   r:   r;   r!   r!   r"   test_trivial_graph]   r>   z#TestWriteSparse6.test_trivial_graphc                 C   0   t d}t }t || | dksJ d S )Nr   s   >>sparse6<<:D
r   empty_graphr   r9   r:   r;   r!   r!   r"   test_empty_graphc      
z!TestWriteSparse6.test_empty_graphc                 C   rA   )ND   s   >>sparse6<<:~?@C
rB   r;   r!   r!   r"   test_large_empty_graphi   rE   z'TestWriteSparse6.test_large_empty_graphc                 C   rA   )Ni s   >>sparse6<<:~~???~?@
rB   r;   r!   r!   r"   test_very_large_empty_grapho   rE   z,TestWriteSparse6.test_very_large_empty_graphc                 C   rA   )Nr   s   >>sparse6<<:CcKI
r   complete_graphr   r9   r:   r;   r!   r!   r"   test_complete_graphu   rE   z$TestWriteSparse6.test_complete_graphc                 C   s4   t d}t }t j||dd | dksJ d S )Nr   Fheaders   :CcKI
rI   r;   r!   r!   r"   test_no_header{   s   
zTestWriteSparse6.test_no_headerc                 C   sR   d}t |ddD ]\}}t|}t }tj||dd | |d ks&J qd S )N)s   :Cdvs   :DaYns   :EaYnNs   :FaYnLs   :GaYnLzr   )startFrL      
)	enumerater   
path_graphr   r9   r:   )r   codesncoder    r<   r!   r!   r"   test_padding   s   
zTestWriteSparse6.test_paddingc                 C   s6   t dd}t }t || 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   r9   r:   )r   r    r<   expectedr!   r!   r"   test_complete_bipartite   s
   z(TestWriteSparse6.test_complete_bipartitec                 C   s   t tdg d D ]A}td| || d }tjj|||d}t }tj||dd | 	 }t
|}| | ks@J t| | sKJ q
d S )Nr   )   /   >   ?   @   H   r	   )seedFrL   )listrangeminr   random_graphsgnm_random_graphr   r9   r:   rstripr   orderr   r   )r   imggstrg2r!   r!   r"   test_read_write_inverse   s   
z(TestWriteSparse6.test_read_write_inversec                 C   sD   t tj tt t  W d    d S 1 sw   Y  d S )N)pytestraisesr   NetworkXNotImplementedr9   DiGraphr   )r   r!   r!   r"   test_no_directed_graphs   s   "z(TestWriteSparse6.test_no_directed_graphsc                 C   sx   t  }|j}W d    n1 sw   Y  tt | t|dd}| dks-J |  dd l	}|
| d S )Nrb)moder7   r   )tempfileNamedTemporaryFilenamer   r9   r8   openreadcloseosremove)r   ffullfilenamer,   r{   r!   r!   r"   test_write_path   s   
z TestWriteSparse6.test_write_pathN)r2   r3   r4   __doc__r=   r@   rD   rG   rH   rK   rN   rV   rY   rm   rr   r   r!   r!   r!   r"   r5   P   s    r5   )ru   ior   rn   networkxr   networkx.utilsr   r   r   r5   r!   r!   r!   r"   <module>   s    F