o
    3ήc                     @   s   d dl Z d dlZd dlm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d Zdd Zdd  Zd!d" Zd#d$ Zd%d& ZdS )'    N)edges_equalc                  C   s  t  } | jddd | jddd | jdddd d| jd< |  }d	|jd< d
|jd
< d|jd d< |  }d|jd< d
|jd
< d|jd d< t j| ||gdd}t| h dks_J |D ]}|\}}|j| t	|jt
| kswJ qa|jd
 d
ksJ |jd dksJ d S )Nr      x      sizegnamehattr   r   j)r
   r   r   rename>   g0g1h0h1j0j1)nxGraphadd_nodeadd_edgegraphcopynodes	union_allsetevalint)r
   r   r   ghjnr   node r&   S/tmp/pip-target-vg8gfxp4/lib/python/networkx/algorithms/operators/tests/test_all.pytest_union_all_attributes   s(   




"r(   c                  C   s   t  } t  }t  }| g d | dd | dd |g d |dd |dd |g d |dd |dd t | ||g}t| h dksYJ t| dgksdJ d S )Nr         r   r   r*   r+   r      r   r*   r+   r   r*   r+   	r   r   add_nodes_fromr   intersection_allr    r   sortededgesGHRIr&   r&   r'   test_intersection_all"   s   r8   c                  C   s   t  } t  }t  }| g d | dd | dd | dd |g d |dd |dd |g d	 |dd |dd |d
d t | ||g}t| h dkseJ t| dgkspJ d S )N)r   r*   r+   r      r   r   r*   r+   r9   r   r)   r   )r   r*   r+   r      	   r:   r;   r,   r-   r.   r3   r&   r&   r'   )test_intersection_all_different_node_sets4   s"   r<   c                  C   s   t  } | jddd | jddd | jdddd d| jd< |  }d	|jd< d
|jd
< d|jd d< t | |g}t| t|  ksIJ t| t| ksWJ t	|
 t	| 
 kseJ d S )Nr   r   r   r   r   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r0   r    r1   r2   r
   r   ghr&   r&   r'    test_intersection_all_attributesH   s   


 r@   c                  C   s   t  } | jddd | jddd | jdddd d| jd< |  }| d	 d
|jd< d|jd< d|jd d< t | |g}t| t| ksNJ t	|
 t	| 
 ks\J d S )Nr   r   r   r   r   r   r
   r   r*   r   r   r   r   r=   r>   r&   r&   r'   4test_intersection_all_attributes_different_node_setsZ   s   



 rA   c                  C   s   t  } | jdddd | jdddd | jdddd t  }|jdddd |jdddd t | |g}t| t|  ksEJ t| t| ksSJ t| dgks^J t|jddd	gkskJ d S 
Nr   r   keyr*   r+   )r   r   Tkeys)r   r   r   r   
MultiGraphr   r0   r    r   r1   r2   r>   r&   r&   r'   +test_intersection_all_multigraph_attributesl   s   rI   c                  C   s   t  } | jdddd | jdddd | jdddd | jdddd | jdddd t  }|jdddd |jdddd t | |g}t| t| ksUJ t| dgks`J t|jddd	gksmJ d S rB   rG   r>   r&   r&   r'   ?test_intersection_all_multigraph_attributes_different_node_sets{   s   rJ   c                  C   s  t d} t d}t  }|dd |dd |dd t  }|dd |dd |dd	 t ||g}t ||g}t| | sOJ |	ddrWJ t
t jt j| | t j||gd
d}t| g dksvJ t j||gdd}t| g dksJ |	ddrJ t ||g}t| | sJ t j||gdd}t| g dksJ t|dg ksJ t|dg dksJ t|dksJ t |dksJ t ||g}t|dksJ t |dksJ t ||g}t| g dksJ t  }|dd t  }|dd t  }	|	dd t j|||	gdd}
t|
 g d ksDJ d S )!Nr+   ABCD1234)r5   G1r   )G1AG1BG1CG1DH1H2H3H4HAHBHCHD)r5    )rO   rP   rQ   rR   rX   rY   rZ   r[   r\   r]   r^   r_   NBNA)r`   r   )rO   rP   rQ   rR   copy1copy2copy3copy4rf   rc   )rd   re   rf   r:   r9         )r   r   r*   r+   r   r   r9   r   r:   r;   
      r   r*   rj      )rS   G2G3)rT   rU   G21G22G311G322)r   complete_graph
path_graphDiGraphr   r   compose_allr   r2   has_edgepytestraisesNetworkXErrorunionr1   r   	neighborslennumber_of_edgesdisjoint_union_all)K3P3rS   rl   r4   r5   rX   rY   Erm   G4r&   r&   r'   test_union_all_and_compose_all   sR   

r   c                  C   s   t  } | jdddd | jdddd t  }|jdddd |jdddd t | |g}t|t| t|B ks=J t|jddt| jddt|jddB ksWJ d S )	Nr   r*   r   rC   r+   r   TrE   )r   rH   r   r   r    r2   )r4   r5   GHr&   r&   r'   test_union_all_multigraph   s   8r   c                  C   s   t dgt dgg} t | }t| dksJ t | }t| dks&J t dgt dgg} t | }t| dks?J d S )N)r   r*   )r+   r   r*   )r   r   r~   r|   ru   r0   )lUrM   r6   r&   r&   r'   test_input_output   s   


r   c                  C   Z   t tj t } t }t }t| ||g}W d    d S 1 s&w   Y  d S N)rw   rx   r   ry   r   rH   r   r4   r5   r7   r   r&   r&   r'   test_mixed_type_union      "r   c                  C   r   r   )rw   rx   r   ry   r   rH   r~   r   r&   r&   r'   test_mixed_type_disjoint_union  r   r   c                  C   r   r   )rw   rx   r   ry   r   rH   r0   r   r&   r&   r'   test_mixed_type_intersection  r   r   c                  C   r   r   )rw   rx   r   ry   r   rH   ru   r   r&   r&   r'   test_mixed_type_compose  r   r   c                   C   :   t t tg  W d    d S 1 sw   Y  d S r   )rw   rx   
ValueErrorr   r   r&   r&   r&   r'   test_empty_union     "r   c                   C   r   r   )rw   rx   r   r   r~   r&   r&   r&   r'   test_empty_disjoint_union   r   r   c                   C   r   r   )rw   rx   r   r   ru   r&   r&   r&   r'   test_empty_compose_all%  r   r   c                   C   r   r   )rw   rx   r   r   r0   r&   r&   r&   r'   test_empty_intersection_all*  r   r   )rw   networkxr   networkx.utilsr   r(   r8   r<   r@   rA   rI   rJ   r   r   r   r   r   r   r   r   r   r   r   r&   r&   r&   r'   <module>   s*    Y