o
    3ήcR                     @   sB   d dl Z d dlZd dlZd dlmZmZ dd ZG dd dZdS )    N)node_link_datanode_link_graphc                 C   s   t d}t|}t|}t| dksJ tdddddd}t||d	}t| d
ks,J |   t||d	}t| d
ks>J d S )N   r   sourcetargetidkeylinksr   r   namer   linkattrs   )nx
path_graphr   r   lendictclear)recwarnGdataHr    r   Y/tmp/pip-target-vg8gfxp4/lib/python/networkx/readwrite/json_graph/tests/test_node_link.pytest_attrs_deprecation
   s   
r   c                   @   sd   e 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S )TestNodeLinkc                 C   s,  t d}|jddd |jdddd d|jd< d	|jd
< tdddddd}tt||dd|d}t ||s:J |jd
 d	ksCJ |j	d d dksNJ |d d d dksZJ tdddd}tt||dd|d}t ||stJ |jd
 d	ks}J |j	d d dksJ |d d d dksJ d S )N   r   redcolor      widthonebarfooc_sourcec_targetc_idc_keyc_linksr
   r   F)
multigraphr   r    r$   )r   r   r   
r   r   add_nodeadd_edgegraphr   r   r   is_isomorphicnodesselfr   r   r   r   r   r   test_custom_attrs_dep   s>   


z"TestNodeLink.test_custom_attrs_depc                 C   sT   t tj t }tddddd}t|| W d    d S 1 s#w   Y  d S Nnode)r   r   r   r   pytestraisesr   NetworkXErrorMultiDiGraphr   r   r5   r   r   r   r   r   test_exception_depF   s
   "zTestNodeLink.test_exception_depc                 C   s*   t d}tt|}t ||sJ d S )Nr   )r   r   r   r   r2   r5   r   r   r   r   r   
test_graphL   s   
zTestNodeLink.test_graphc                 C   s   t d}|jddd |jdddd d|jd< d	|jd
< tt|}|jd
 d	ks-J |jd d dks8J |d d d dksDJ t	t|}tt
|}|jd
 d	ks[J |jd dksdJ |jd d dksoJ |d d d dks{J d S )Nr   r   r   r   r!   r"   r#   r%   r&   r'   r    r$   1)r   r   r/   r0   r1   r   r   r3   jsondumpsloads)r5   r   r   dr   r   r   test_graph_attributesQ   s   


z"TestNodeLink.test_graph_attributesc                 C   s$   t  }tt|}| sJ d S )N)r   DiGraphr   r   is_directedr@   r   r   r   test_digraphd   s   zTestNodeLink.test_digraphc                 C   sf   t  }|jdddd |jddddd tt|}t ||s#J |d d d d dks1J d S )	Nr   r!   first)r   secondblue)r   r    r    )r   
MultiGraphr0   r   r   r2   r@   r   r   r   test_multigraphi   s    zTestNodeLink.test_multigraphc                 C   sx   t  }|jddg dd t|}t|}t|}t|}|jd |jd ks,J |d d d g dks:J d S )N)r   r   )r   r   )   rP   r   r   r    )	r   Graphr0   r   rC   rD   rE   r   r3   )r5   r   rF   dumped_dddr   r   r   r   test_graph_with_tuple_nodesq   s   

 z(TestNodeLink.test_graph_with_tuple_nodesc                 C   sb   d}t  }|jdi ||i t|}tj|dd}t|}t|}|jd | |ks/J d S )N   qualitér   F)ensure_ascii)r   )	r   rQ   r/   r   rC   rD   rE   r   r3   )r5   qr   soutputr   r   r   r   r   test_unicode_keys{   s   
zTestNodeLink.test_unicode_keysc                 C   sZ   t tj t }tddddd}t|fi | W d    d S 1 s&w   Y  d S r7   r9   r>   r   r   r   test_exception   s
   "zTestNodeLink.test_exceptionc                 C   s   d}t  }|d || |d| t|}|d d d dks&J |d d d |ks2J t|}t ||s>J d S )NrU   Ar	   r   r   r   )r   rH   r/   r0   r   r   r2   )r5   rW   r   r   r   r   r   r   test_string_ids   s   

zTestNodeLink.test_string_idsc                 C   s   t d}|jddd |jdddd d|jd< d	|jd
< tdddddd}tt|fi |fddi|}t ||s?J |jd
 d	ksHJ |j	d d dksSJ |d d d dks_J d S )Nr   r   r   r   r!   r"   r#   r%   r&   r'   r(   r)   r*   r+   r,   r
   r-   Fr    r$   r.   r4   r   r   r   test_custom_attrs   s"   


 zTestNodeLink.test_custom_attrsN)__name__
__module____qualname__r6   r?   rA   rG   rJ   rO   rT   rZ   r[   r]   r^   r   r   r   r   r      s    '

r   )	rC   r:   networkxr   networkx.readwrite.json_graphr   r   r   r   r   r   r   r   <module>   s    