o
    ˷e                     @   s  d dl mZ 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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 )     )OrderedDictN   )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   Z/var/www/ideatree/venv/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       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,   
r0   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   r6   8      
zTestSpecialGraph.setup_methodNr   r   r   r6   r   r   r   r   r2   7       r2   c                   @   r1   )TestOrderedGraphc                 C   s&   t |  G dd dtj}|| _d S )Nc                   @      e Zd ZeZeZeZeZdS )z.TestOrderedGraph.setup_method.<locals>.MyGraphNr   r   r   r   r   r   r   r   r   r   r   r   r   A   
    r   r4   r8   r   r   r   r   r6   >      

zTestOrderedGraph.setup_methodNr:   r   r   r   r   r<   =   r;   r<   c                   @   r1   )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 r3   r   r7   all_edge_dictr   r   r   O      zBTestThinGraph.setup_method.<locals>.MyGraph.edge_attr_dict_factoryNr   r   r   r   r   rF   r   r   r   N       r   r   r   r   r   r   r   r   r   r   rM   rL   rK   r   r   )r!   r"   k3adjk3edgesk3nodesK3r(   r'   )r8   r   ed1ed2ed3r   rF   r   r6   K   s    



zTestThinGraph.setup_methodNr:   r   r   r   r   rB   J   r;   rB   c                   @   r1   )TestSpecialDiGraphc                 C      t |  tj| _d S r3   _TestDiGraphr6   r!   r#   r"   r7   r   r   r   r6   a   r9   zTestSpecialDiGraph.setup_methodNr:   r   r   r   r   rW   `   r;   rW   c                   @   r1   )TestOrderedDiGraphc                 C   &   t |  G dd dtj}|| _d S )Nc                   @   r=   )z0TestOrderedDiGraph.setup_method.<locals>.MyGraphNr>   r   r   r   r   r   j   r?   r   rY   r@   r   r   r   r6   g   rA   zTestOrderedDiGraph.setup_methodNr:   r   r   r   r   r[   f   r;   r[   c                   @   r1   )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 )NrC   r   c                       rD   )z-TestThinDiGraph.setup_method.<locals>.MyGraphc                    rE   r3   r   r7   rF   r   r   r   x   rH   zDTestThinDiGraph.setup_method.<locals>.MyGraph.edge_attr_dict_factoryNrI   r   rF   r   r   r   w   rJ   r   rK   rL   rM   rN   rO   r   r   )r!   r#   r"   rP   rQ   rR   rS   r,   r+   r'   P3)r8   r   rT   rU   rV   ed4ed5ed6r   rF   r   r6   t   s.    



"

zTestThinDiGraph.setup_methodNr:   r   r   r   r   r]   s   r;   r]   c                   @   r1   )TestSpecialMultiGraphc                 C   rX   r3   _TestMultiGraphr6   r!   r$   r"   r7   r   r   r   r6      r9   z"TestSpecialMultiGraph.setup_methodNr:   r   r   r   r   rb      r;   rb   c                   @   r1   )TestOrderedMultiGraphc                 C   r\   )Nc                   @       e Zd ZeZeZeZeZeZdS )z3TestOrderedMultiGraph.setup_method.<locals>.MyGraphN	r   r   r   r   r   r   r   r   r   r   r   r   r   r      r   r   rc   r@   r   r   r   r6         

z"TestOrderedMultiGraph.setup_methodNr:   r   r   r   r   re      r;   re   c                   @   r1   )TestSpecialMultiDiGraphc                 C   rX   r3   _TestMultiDiGraphr6   r!   r%   r"   r7   r   r   r   r6      r9   z$TestSpecialMultiDiGraph.setup_methodNr:   r   r   r   r   ri      r;   ri   c                   @   r1   )TestOrderedMultiDiGraphc                 C   r\   )Nc                   @   rf   )z5TestOrderedMultiDiGraph.setup_method.<locals>.MyGraphNrg   r   r   r   r   r      r   r   rj   r@   r   r   r   r6      rh   z$TestOrderedMultiDiGraph.setup_methodNr:   r   r   r   r   rl      r;   rl   )collectionsr   networkxr!   test_digraphr   r   rZ   
test_graphr   r   r5   test_multidigraphr   rk   test_multigraphr	   rd   r0   r2   r<   rB   rW   r[   r]   rb   re   ri   rl   r   r   r   r   <module>   s&    *#