ó
 ,µ[c           @   sŒ   d  Z  d d l Z d d l Z d d l m Z d d l m Z m Z m Z d d l	 m
 Z
 m Z m Z d d l Z d e f d „  ƒ  YZ d S(   s$   Unit tests for PyGraphviz interface.iÿÿÿÿN(   t   SkipTest(   t   assert_truet   assert_equalt   assert_raises(   t   assert_edges_equalt   assert_nodes_equalt   assert_graphs_equalt
   TestAGraphc           B   sƒ   e  Z e d  „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z d
 „  Z d „  Z d „  Z RS(   c         C   s4   y d d  l  a  Wn t k
 r/ t d ƒ ‚ n Xd  S(   Niÿÿÿÿs   PyGraphviz not available.(   t
   pygraphvizt   ImportErrorR    (   t   cls(    (    sA   lib/python2.7/site-packages/networkx/drawing/tests/test_agraph.pyt
   setupClass   s    c         C   s@   d d	 d
 d d g } | j  | ƒ | j d ƒ d | j d <| S(   Nt   At   Bt   Ct   Dt   Et   bronzet   metal(   R   R   (   R   R   (   R   R   (   R   R   (   R   R   (   t   add_edges_fromt   add_nodet   graph(   t   selft   Gt   edges(    (    sA   lib/python2.7/site-packages/networkx/drawing/tests/test_agraph.pyt   build_graph   s
    c         C   sQ   t  | j ƒ  | j ƒ  ƒ t | j ƒ  | j ƒ  ƒ t | j d | j d ƒ d  S(   NR   (   R   t   nodesR   R   R   R   (   R   t   G1t   G2(    (    sA   lib/python2.7/site-packages/networkx/drawing/tests/test_agraph.pyR      s    c         C   s  |  j  | ƒ } t j j | ƒ } t j j | ƒ } |  j | | ƒ t j ƒ  } t j j j	 | | ƒ t j j
 | ƒ } t j | ƒ |  j | | ƒ t j ƒ  \ } } t | d ƒ  } t j j j	 | | ƒ Wd  QXt | d ƒ  } t j j
 | ƒ } Wd  QXt j | ƒ |  j | | ƒ d  S(   Nt   wt   r(   R   t   nxt	   nx_agrapht	   to_agrapht   from_agraphR   t   tempfilet   mktempt   drawingt	   write_dott   read_dott   ost   unlinkt   mkstempt   open(   R   R   R   t   Ht   fnamet   Hint   fdt   fh(    (    sA   lib/python2.7/site-packages/networkx/drawing/tests/test_agraph.pyt   agraph_checks!   s     c         C   sJ   t  j d d ƒ } t  j j | ƒ } t  j j | ƒ } t | j d ƒ d  S(   Nt   namet   test(   R   t   GraphR    R!   R"   R   R2   (   R   R   R   R,   (    (    sA   lib/python2.7/site-packages/networkx/drawing/tests/test_agraph.pyt   test_from_agraph_name6   s    c         C   s   |  j  t j ƒ  ƒ d  S(   N(   R1   R   R4   (   R   (    (    sA   lib/python2.7/site-packages/networkx/drawing/tests/test_agraph.pyt   test_undirected<   s    c         C   s   |  j  t j ƒ  ƒ d  S(   N(   R1   R   t   DiGraph(   R   (    (    sA   lib/python2.7/site-packages/networkx/drawing/tests/test_agraph.pyt   test_directed?   s    c         C   s   |  j  t j ƒ  ƒ d  S(   N(   R1   R   t
   MultiGraph(   R   (    (    sA   lib/python2.7/site-packages/networkx/drawing/tests/test_agraph.pyt   test_multi_undirectedB   s    c         C   s   |  j  t j ƒ  ƒ d  S(   N(   R1   R   t   MultiDiGraph(   R   (    (    sA   lib/python2.7/site-packages/networkx/drawing/tests/test_agraph.pyt   test_multi_directedE   s    c         C   sK   t  j ƒ  } t t  j t  j j | ƒ t  j d d ƒ } t  j j | ƒ d  S(   Ni   i   (   R   R4   R   t   NetworkXExceptionR    t   view_pygraphvizt   barbell_graph(   R   R   (    (    sA   lib/python2.7/site-packages/networkx/drawing/tests/test_agraph.pyt   test_view_pygraphvizH   s    c         C   sR   t  j ƒ  } | j d d d d ƒ| j d d d d ƒt  j j | d d ƒd  S(   Ni   i   t   weighti   i   i   t	   edgelabel(   R   R4   t   add_edgeR    R>   (   R   R   (    (    sA   lib/python2.7/site-packages/networkx/drawing/tests/test_agraph.pyt   test_view_pygraphviz_edgelableN   s    c         C   sd   t  j ƒ  } |  j | ƒ } d | j d d <d | j d d <d | j d	 d <t  j j | ƒ } d  S(
   Nt   keywordR   t   nR   R   t   ut   v(   R   R   (   R   R   (   R   R4   R   t   nodeR   R    R!   (   R   R   R   (    (    sA   lib/python2.7/site-packages/networkx/drawing/tests/test_agraph.pyt!   test_graph_with_reserved_keywordsT   s    c         C   s™   t  j ƒ  } t  j j | ƒ } t  j j | ƒ } t  j j | ƒ } t  j j | ƒ } t | | ƒ i  | j d <i  | j d <i  | j d <t | | ƒ d  S(   NR   RI   t   edge(   R   R4   R    R!   R"   R   R   (   R   R   R   R,   t   AAt   HH(    (    sA   lib/python2.7/site-packages/networkx/drawing/tests/test_agraph.pyt   test_round_trip_   s    (   t   __name__t
   __module__t   classmethodR   R   R   R1   R5   R6   R8   R:   R<   R@   RD   RJ   RN   (    (    (    sA   lib/python2.7/site-packages/networkx/drawing/tests/test_agraph.pyR      s   											(   t   __doc__R(   R#   t   noseR    t
   nose.toolsR   R   R   t   networkx.testingR   R   R   t   networkxR   t   objectR   (    (    (    sA   lib/python2.7/site-packages/networkx/drawing/tests/test_agraph.pyt   <module>   s   