o
    ñh¤  ã                   @   sL   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 )é    )ÚBytesION)Ú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!   úY/var/www/vscode/kcb/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_graph2   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_graph6B   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 )ÚTestWriteSparse6zˆUnit 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_graphV   ó   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_graphb   ó   
z!TestWriteSparse6.test_empty_graphc                 C   rA   )NéD   s   >>sparse6<<:~?@C
rB   r;   r!   r!   r"   Útest_large_empty_graphh   rE   z'TestWriteSparse6.test_large_empty_graphc                 C   rA   )Nið s   >>sparse6<<:~~???~?@
rB   r;   r!   r!   r"   Útest_very_large_empty_graphn   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_grapht   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_headerz   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   s^   t |d ƒ}t t ¡ |¡ t|dd}| ¡ dksJ ‚W d   ƒ d S 1 s(w   Y  d S )Nztest.s6Úrb)Úmoder7   )Ústrr   r9   r8   ÚopenÚread)r   Útmp_pathÚfullfilenamer,   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   rz   r!   r!   r!   r"   r5   O   s    r5   )
Úior   rn   Únetworkxr   Únetworkx.utilsr   r   r   r5   r!   r!   r!   r"   Ú<module>   s    F