o
    h                     @   s   d dl ZddlmZ ddlmZ ddlmZ ddlmZ	 ddl
mZ ddlmZ d	d
 ZG dd de	ZG dd deZG dd deZG dd deZG dd deZG dd deZdS )    N   )BaseDiGraphTester)TestDiGraph)BaseGraphTester)	TestGraph)TestMultiDiGraph)TestMultiGraphc                     sl  G dd dt  G dd dt G dd dt G dd dt G d	d
 d
t tjtjtjtjfD ]} G  fddd| }| }t|j sMJ t|jsUJ |	d t|jd sdJ |
 rt|jspJ t|jsxJ t|jd sJ |dd | rt|jd d sJ t|jd d d sJ q2t|jd d sJ q2d S )Nc                   @      e Zd ZdS )ztest_factories.<locals>.mydict1N__name__
__module____qualname__ r   r   W/var/www/vscode/kcb/lib/python3.10/site-packages/networkx/classes/tests/test_special.pymydict1       r   c                   @   r	   )ztest_factories.<locals>.mydict2Nr
   r   r   r   r   mydict2   r   r   c                   @   r	   )ztest_factories.<locals>.mydict3Nr
   r   r   r   r   mydict3   r   r   c                   @   r	   )ztest_factories.<locals>.mydict4Nr
   r   r   r   r   mydict4   r   r   c                   @   r	   )ztest_factories.<locals>.mydict5Nr
   r   r   r   r   mydict5   r   r   c                       s    e Zd Z ZZZZZdS )ztest_factories.<locals>.MyGraphN)r   r   r   node_dict_factoryadjlist_outer_dict_factoryadjlist_inner_dict_factoryedge_key_dict_factoryedge_attr_dict_factoryr   r   r   r   r   r   r   r   MyGraph   s    r   r      r   )dictnxGraphDiGraph
MultiGraphMultiDiGraph
isinstance_node_adjadd_nodeis_directed_pred_succadd_edgeis_multigraph)r    r   Gr   r   r   test_factories   s,   
r.   c                   @      e Zd Zdd ZdS )TestSpecialGraphc                 C   s   t |  tj| _d S N)
_TestGraphsetup_methodr   r    selfr   r   r   r3   6      
zTestSpecialGraph.setup_methodNr   r   r   r3   r   r   r   r   r0   5       r0   c                   @   r/   )TestThinGraphc                    s   ddi G  fdddt j}|| _   }}}||d||d||dd| _g d	| _g d| _|  | _| j| j_i | j_i | jjd
< i | jjd< i | jjd< d S )Nweightr   c                          e Zd Z fddZdS )z+TestThinGraph.setup_method.<locals>.MyGraphc                        S r1   r   r4   all_edge_dictr   r   r   @      zBTestThinGraph.setup_method.<locals>.MyGraph.edge_attr_dict_factoryNr   r   r   r   r   r=   r   r   r   ?       r   r   r   r   r   r   r   r   r   r   rD   rC   rB   r   r   )r   r    k3adjk3edgesk3nodesK3r&   r%   )r5   r   ed1ed2ed3r   r=   r   r3   <   s    



zTestThinGraph.setup_methodNr7   r   r   r   r   r9   ;   r8   r9   c                   @   r/   )TestSpecialDiGraphc                 C      t |  tj| _d S r1   )_TestDiGraphr3   r   r!   r    r4   r   r   r   r3   R   r6   zTestSpecialDiGraph.setup_methodNr7   r   r   r   r   rN   Q   r8   rN   c                   @   r/   )TestThinDiGraphc                    sN  ddi G  fdddt j}|| _   }}}   }}}||d||d||dd| _g d	| _g d| _|  | _| j| j_||d||d||dd| j_i | j_	i | jj	d
< i | jj	d< i | jj	d<   }}|  | _
d|id|ii d| j
_i d
|id|id| j
_i | j
_	i | j
j	d
< i | j
j	d< i | j
j	d< d S )Nr:   r   c                       r;   )z-TestThinDiGraph.setup_method.<locals>.MyGraphc                    r<   r1   r   r4   r=   r   r   r   \   r?   zDTestThinDiGraph.setup_method.<locals>.MyGraph.edge_attr_dict_factoryNr@   r   r=   r   r   r   [   rA   r   rB   rC   rD   rE   rF   r   r   )r   r!   r    rG   rH   rI   rJ   r*   r)   r%   P3)r5   r   rK   rL   rM   ed4ed5ed6r   r=   r   r3   X   s.    



"

zTestThinDiGraph.setup_methodNr7   r   r   r   r   rQ   W   r8   rQ   c                   @   r/   )TestSpecialMultiGraphc                 C   rO   r1   )_TestMultiGraphr3   r   r"   r    r4   r   r   r   r3   {   r6   z"TestSpecialMultiGraph.setup_methodNr7   r   r   r   r   rV   z   r8   rV   c                   @   r/   )TestSpecialMultiDiGraphc                 C   rO   r1   )_TestMultiDiGraphr3   r   r#   r    r4   r   r   r   r3      r6   z$TestSpecialMultiDiGraph.setup_methodNr7   r   r   r   r   rX      r8   rX   )networkxr   test_digraphr   r   rP   
test_graphr   r   r2   test_multidigraphr   rY   test_multigraphr   rW   r.   r0   r9   rN   rQ   rV   rX   r   r   r   r   <module>   s    *#