o
    ]ZŽ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!   úT/var/www/auris/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   ÚtypeZGraphZ
MultiGraph)r   Z
graph_datar    Z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    ÚfhZ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(   Zglistr    r!   r!   r"   Útest_read_many_graph6B   s   

þÿz&TestSparseGraph6.test_read_many_graph6N)Ú__name__Ú
__module__Ú__qualname__r#   r&   r)   r+   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   r0   )Ns   >>sparse6<<:@
)r   Ztrivial_graphr   r3   r4   r5   r!   r!   r"   Útest_trivial_graph\   r8   z#TestWriteSparse6.test_trivial_graphc                 C   ó0   t  d¡}tƒ }t  ||¡ | ¡ dksJ ‚d S )Nr   s   >>sparse6<<:D
©r   Zempty_graphr   r3   r4   r5   r!   r!   r"   Útest_empty_graphb   ó   
z!TestWriteSparse6.test_empty_graphc                 C   r:   )NéD   s   >>sparse6<<:~?@C
r;   r5   r!   r!   r"   Útest_large_empty_graphh   r=   z'TestWriteSparse6.test_large_empty_graphc                 C   r:   )Nið s   >>sparse6<<:~~???~?@
r;   r5   r!   r!   r"   Útest_very_large_empty_graphn   r=   z,TestWriteSparse6.test_very_large_empty_graphc                 C   r:   )Nr   s   >>sparse6<<:CcKI
©r   Zcomplete_graphr   r3   r4   r5   r!   r!   r"   Útest_complete_grapht   r=   z$TestWriteSparse6.test_complete_graphc                 C   s4   t  d¡}tƒ }t j||dd | ¡ dksJ ‚d S )Nr   F©Úheaders   :CcKI
rA   r5   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   )ÚstartFrC   ó   
)Ú	enumerater   Z
path_graphr   r3   r4   )r   ÚcodesÚnÚcoder    r6   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   Zcomplete_bipartite_graphr   r3   r4   )r   r    r6   Ú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	   )ÚseedFrC   )ÚlistÚrangeÚminr   Zrandom_graphsZgnm_random_graphr   r3   r4   Úrstripr   Úorderr   r   )r   ÚiÚmÚgZ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)ÚpytestZraisesr   ZNetworkXNotImplementedr3   Z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)Úmoder1   )Ústrr   r3   r2   ÚopenÚread)r   Ztmp_pathZfullfilenamer(   r!   r!   r"   Útest_write_path    s
   "ÿz TestWriteSparse6.test_write_pathN)r,   r-   r.   Ú__doc__r7   r9   r<   r?   r@   rB   rE   rL   rN   r_   ra   rg   r!   r!   r!   r"   r/   O   s    r/   )
Úior   r`   Znetworkxr   Znetworkx.utilsr   r   r   r/   r!   r!   r!   r"   Ú<module>   s    F