ó
 ,µ[c           @   sl   d  Z  d d l m Z d d l Td d l Z d d l Z d d l m Z d d l Td e	 f d „  ƒ  YZ
 d S(   s   
Pajek tests
iÿÿÿÿ(   t   assert_equal(   t   *N(   t   opent	   TestPajekc           B   sb   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z RS(
   c      	   C   s¶   d |  _  t j ƒ  |  _ |  j j d d d d g ƒ |  j j d
 d d d d d d g ƒ d |  j j d <t j ƒ  \ } |  _	 t
 j | d ƒ   } | j |  j  j d	 ƒ ƒ Wd  QXd  S(   Ns`  *network Tralala
*vertices 4
   1 "A1"         0.0938 0.0896   ellipse x_fact 1 y_fact 1
   2 "Bb"         0.8188 0.2458   ellipse x_fact 1 y_fact 1
   3 "C"          0.3688 0.7792   ellipse x_fact 1
   4 "D2"         0.9583 0.8563   ellipse x_fact 1
*arcs
1 1 1  h2 0 w 3 c Blue s 3 a1 -130 k1 0.6 a2 -130 k2 0.6 ap 0.5 l "Bezier loop" lc BlueViolet fos 20 lr 58 lp 0.3 la 360
2 1 1  h2 0 a1 120 k1 1.3 a2 -120 k2 0.3 ap 25 l "Bezier arc" lphi 270 la 180 lr 19 lp 0.5
1 2 1  h2 0 a1 40 k1 2.8 a2 30 k2 0.8 ap 25 l "Bezier arc" lphi 90 la 0 lp 0.65
4 2 -1  h2 0 w 1 k1 -2 k2 250 ap 25 l "Circular arc" c Red lc OrangeRed
3 4 1  p Dashed h2 0 w 2 c OliveGreen ap 25 l "Straight arc" lc PineGreen
1 3 1  p Dashed h2 0 w 5 k1 -1 k2 -20 ap 25 l "Oval arc" c Brown lc Black
3 3 -1  h1 6 w 1 h2 12 k1 -2 k2 -15 ap 0.5 l "Circular loop" c Red lc OrangeRed lphi 270 la 180t   A1t   Bbt   Ct   D2t   Tralalat   namet   wbs   UTF-8(   R   R   (   R   R   (   R   R   (   R   R   (   R   R   (   R   R   (   R   R   (   t   datat   nxt   MultiDiGrapht   Gt   add_nodes_fromt   add_edges_fromt   grapht   tempfilet   mkstempt   fnamet   ost   fdopent   writet   encode(   t   selft   fdt   fh(    (    sB   lib/python2.7/site-packages/networkx/readwrite/tests/test_pajek.pyt   setUp   s    		
c         C   s   t  j |  j ƒ d  S(   N(   R   t   unlinkR   (   R   (    (    sB   lib/python2.7/site-packages/networkx/readwrite/tests/test_pajek.pyt   tearDown   s    c         C   sN   d } t  | ƒ } t t | j ƒ  ƒ d d g ƒ t | j ƒ  d d g ƒ d  S(   Ns&   *Vertices 2
1 "1"
2 "2"
*Edges
1 2
2 1t   1t   2(   R   R    (   R   R    (   t   parse_pajekR    t   sortedt   nodest   assert_edges_equalt   edges(   R   R   R   (    (    sB   lib/python2.7/site-packages/networkx/readwrite/tests/test_pajek.pyt   test_parse_pajek_simple   s    c      
   C   s`   t  |  j ƒ } t t | j ƒ  ƒ d d d d g ƒ t | j ƒ  d d d d d	 d
 d g ƒ d  S(   NR   R   R   R   (   R   R   (   R   R   (   R   R   (   R   R   (   R   R   (   R   R   (   R   R   (   R!   R   R    R"   R#   R$   R%   (   R   R   (    (    sB   lib/python2.7/site-packages/networkx/readwrite/tests/test_pajek.pyt   test_parse_pajek%   s
    %c         C   sx   d } t  | ƒ } t t | j ƒ  ƒ d d d h ƒ t | j d i d d 6ƒ t t | j ƒ  ƒ d d d	 d
 h ƒ d  S(   Ns@   *Vertices 3
1 "one"
2 "two"
3 "three"
*Matrix
1 1 0
0 1 0
0 1 0
t   onet   twot   threeR    t   id(   R(   R(   (   R)   R(   (   R)   R)   (   R)   R*   (   R!   R    t   setR#   R$   R%   (   R   R   R   (    (    sB   lib/python2.7/site-packages/networkx/readwrite/tests/test_pajek.pyt   test_parse_pajet_mat,   s
    "c         C   s¢   t  |  j ƒ } t |  j ƒ } t t | j ƒ  ƒ t | j ƒ  ƒ ƒ t | j ƒ  | j ƒ  ƒ t |  j	 j
 | j
 ƒ x) | D]! } t | j | | j | ƒ qy Wd  S(   N(   R!   R   t
   read_pajekR   R    R"   R#   R$   R%   R   R   (   R   R   t   Gint   n(    (    sB   lib/python2.7/site-packages/networkx/readwrite/tests/test_pajek.pyt   test_read_pajek3   s    %c         C   s•   d d  l  } t |  j ƒ } | j ƒ  } t j | | ƒ | j d ƒ t j | ƒ } t t	 | ƒ t	 | ƒ ƒ t
 t	 | j ƒ  ƒ t	 | j ƒ  ƒ ƒ d  S(   Niÿÿÿÿi    (   t   ioR!   R   t   BytesIOR   t   write_pajekt   seekR.   t   assert_nodes_equalt   listR$   R%   (   R   R2   R   R   t   H(    (    sB   lib/python2.7/site-packages/networkx/readwrite/tests/test_pajek.pyt   test_write_pajek<   s    c         C   sÄ   d d  l  } t j ƒ  } | j ƒ  } | j d d d ƒ| j d d d ƒ| j d d d d ƒ| j d d d d ƒd d  l } | j d t ƒ * } t j	 | | ƒ t
 t | ƒ d	 ƒ Wd  QXd  S(
   Niÿÿÿÿi   t   int_attri   t
   empty_attrs     i   t   recordi   (   R2   R   t   GraphR3   t   add_nodet   add_edget   warningst   catch_warningst   TrueR4   R    t   len(   R   R2   R   R   R@   t   w(    (    sB   lib/python2.7/site-packages/networkx/readwrite/tests/test_pajek.pyt   test_ignored_attributeH   s    c         C   s?   d } |  j  j d ƒ d } | d j | ƒ } t | ƒ } d  S(   Ns	   *network
s   
i   (   R   t   splitt   joinR!   (   R   t   linet   other_linesR   R   (    (    sB   lib/python2.7/site-packages/networkx/readwrite/tests/test_pajek.pyt   test_nonameV   s    c         C   sS  d d  l  } t j ƒ  } yD t d ƒ t d ƒ t d ƒ } t d ƒ t d ƒ t d ƒ } WnQ t k
 r¯ t d ƒ t d ƒ t d ƒ } t d ƒ t d ƒ t d ƒ } n X| j | d d	 | ƒ| j ƒ  } t j | | ƒ | j	 d
 ƒ t j
 | ƒ } t t | ƒ t | ƒ ƒ t t | j ƒ  ƒ t | j ƒ  ƒ ƒ t | j | j ƒ d  S(   Niÿÿÿÿi(	  i{   i  i§  i  iD  t	   Radioheadt   fooi    (   R2   R   R=   t   chrt
   ValueErrort   unichrR?   R3   R4   R5   R.   R6   R7   R$   R%   R    R   (   R   R2   R   t   name1t   name2R   R8   (    (    sB   lib/python2.7/site-packages/networkx/readwrite/tests/test_pajek.pyt   test_unicode^   s      $ $%(   t   __name__t
   __module__R   R   R&   R'   R-   R1   R9   RE   RJ   RR   (    (    (    sB   lib/python2.7/site-packages/networkx/readwrite/tests/test_pajek.pyR      s   										(   t   __doc__t
   nose.toolsR    t   networkxR   R   R2   R   t   networkx.testingt   objectR   (    (    (    sB   lib/python2.7/site-packages/networkx/readwrite/tests/test_pajek.pyt   <module>   s   

