ó
 ,µ[c           @   sX   d  d l  Z  d  d l Z d  d l m Z d  d l Td  d l Z d e f d „  ƒ  YZ d S(   iÿÿÿÿN(   t   SkipTest(   t   *t   TestGEXFc           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 d „  Z RS(   c         C   s4   y d d  l  } Wn t k
 r/ t d ƒ ‚ n Xd  S(   Niÿÿÿÿs$   xml.etree.ElementTree not available.(   t   xml.etree.ElementTreet   ImportErrorR    (   t   clst   xml(    (    sA   lib/python2.7/site-packages/networkx/readwrite/tests/test_gexf.pyt
   setupClass   s    c      
   C   sd  d |  _  t j ƒ  |  _ |  j j d d d ƒ|  j j d d d ƒ|  j j d d d d ƒt j |  j  j d ƒ ƒ |  _	 d	 |  _
 t j ƒ  |  _ i t d
 6|  j j d <|  j j d d d d d d d d
 t ƒ|  j j d d d d d d d d
 t ƒ|  j j d d d d d d d d
 t ƒ|  j j d d d d d d d d
 t ƒ|  j j d d d d ƒ|  j j d d d d ƒ|  j j d d d d ƒ|  j j d d d d ƒ|  j j d d d d ƒt j |  j
 j d ƒ ƒ |  _ d |  _ t j ƒ  |  _ |  j j d d d ƒ|  j j d d d ƒ|  j j d d d d ƒt j |  j j d ƒ ƒ |  _ d  S(   Nsr  <?xml version="1.0" encoding="UTF-8"?>
<gexf xmlns="http://www.gexf.net/1.2draft" version="1.2">
    <graph mode="static" defaultedgetype="directed">
        <nodes>
            <node id="0" label="Hello" />
            <node id="1" label="Word" />
        </nodes>
        <edges>
            <edge id="0" source="0" target="1" />
        </edges>
    </graph>
</gexf>
t   0t   labelt   Hellot   1t   Worldt   ids   UTF-8sR  <?xml version="1.0" encoding="UTF-8"?>
<gexf xmlns="http://www.gexf.net/1.2draft" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.gexf.net/1.2draft http://www.gexf.net/1.2draft/gexf.xsd" version="1.2">
  <meta lastmodifieddate="2009-03-20">
    <creator>Gephi.org</creator>
    <description>A Web network</description>
  </meta>
  <graph defaultedgetype="directed">
    <attributes class="node">
      <attribute id="0" title="url" type="string"/>
      <attribute id="1" title="indegree" type="integer"/>
      <attribute id="2" title="frog" type="boolean">
        <default>true</default>
      </attribute>
    </attributes>
    <nodes>
      <node id="0" label="Gephi">
        <attvalues>
          <attvalue for="0" value="https://gephi.org"/>
          <attvalue for="1" value="1"/>
          <attvalue for="2" value="false"/>
        </attvalues>
      </node>
      <node id="1" label="Webatlas">
        <attvalues>
          <attvalue for="0" value="http://webatlas.fr"/>
          <attvalue for="1" value="2"/>
          <attvalue for="2" value="false"/>
        </attvalues>
      </node>
      <node id="2" label="RTGI">
        <attvalues>
          <attvalue for="0" value="http://rtgi.fr"/>
          <attvalue for="1" value="1"/>
          <attvalue for="2" value="true"/>
        </attvalues>
      </node>
      <node id="3" label="BarabasiLab">
        <attvalues>
          <attvalue for="0" value="http://barabasilab.com"/>
          <attvalue for="1" value="1"/>
          <attvalue for="2" value="true"/>
        </attvalues>
      </node>
    </nodes>
    <edges>
      <edge id="0" source="0" target="1"/>
      <edge id="1" source="0" target="2"/>
      <edge id="2" source="1" target="0"/>
      <edge id="3" source="2" target="1"/>
      <edge id="4" source="0" target="3"/>
    </edges>
  </graph>
</gexf>
t   frogt   node_defaultt   Gephit   urls   https://gephi.orgt   indegreei   t   Webatlass   http://webatlas.fri   t   2t   RTGIs   http://rtgi.frt   3t   BarabasiLabs   http://barabasilab.comt   4st  <?xml version="1.0" encoding="UTF-8"?>
<gexf xmlns="http://www.gexf.net/1.2draft" version="1.2">
    <graph mode="static" defaultedgetype="undirected">
        <nodes>
            <node id="0" label="Hello" />
            <node id="1" label="Word" />
        </nodes>
        <edges>
            <edge id="0" source="0" target="1" />
        </edges>
    </graph>
</gexf>
(   t   simple_directed_datat   nxt   DiGrapht   simple_directed_grapht   add_nodet   add_edget   iot   BytesIOt   encodet   simple_directed_fht   attribute_datat   attribute_grapht   Truet   grapht   Falset   attribute_fht   simple_undirected_datat   Grapht   simple_undirected_grapht   simple_undirected_fh(   t   self(    (    sA   lib/python2.7/site-packages/networkx/readwrite/tests/test_gexf.pyt   setUp   sJ    	7		c         C   sª   |  j  } t j |  j ƒ } t t | j ƒ  ƒ t | j ƒ  ƒ ƒ t t | j ƒ  ƒ t | j ƒ  ƒ ƒ t t | j d t ƒ ƒ t | j d t ƒ ƒ ƒ |  j j	 d ƒ d  S(   Nt   datai    (
   R   R   t	   read_gexfR"   t   assert_equalt   sortedt   nodest   edgesR%   t   seek(   R-   t   Gt   H(    (    sA   lib/python2.7/site-packages/networkx/readwrite/tests/test_gexf.pyt!   test_read_simple_directed_graphml‹   s    	%%c         C   sÐ   |  j  } t j ƒ  } t j | | ƒ | j d ƒ t j | ƒ } t t | j	 ƒ  ƒ t | j	 ƒ  ƒ ƒ t t | j
 ƒ  ƒ t | j
 ƒ  ƒ ƒ t t | j
 d t ƒ ƒ t | j
 d t ƒ ƒ ƒ |  j j d ƒ d  S(   Ni    R/   (   R   R   R    R   t
   write_gexfR5   R0   R1   R2   R3   R4   R%   R"   (   R-   R6   t   fhR7   (    (    sA   lib/python2.7/site-packages/networkx/readwrite/tests/test_gexf.pyt'   test_write_read_simple_directed_graphml”   s    	%%c         C   s   |  j  } t j |  j ƒ } t t | j ƒ  ƒ t | j ƒ  ƒ ƒ t t d „  | j ƒ  Dƒ ƒ t d „  | j ƒ  Dƒ ƒ ƒ |  j j d ƒ d  S(   Nc         s   s   |  ] } t  | ƒ Vq d  S(   N(   R2   (   t   .0t   e(    (    sA   lib/python2.7/site-packages/networkx/readwrite/tests/test_gexf.pys	   <genexpr>¥   s    c         s   s   |  ] } t  | ƒ Vq d  S(   N(   R2   (   R<   R=   (    (    sA   lib/python2.7/site-packages/networkx/readwrite/tests/test_gexf.pys	   <genexpr>¦   s    i    (	   R+   R   R0   R,   R1   R2   R3   R4   R5   (   R-   R6   R7   (    (    sA   lib/python2.7/site-packages/networkx/readwrite/tests/test_gexf.pyt#   test_read_simple_undirected_graphml    s    	%c         C   sº   |  j  } t j |  j ƒ } t t | j t ƒ ƒ t | j d t ƒ ƒ ƒ t | j d t ƒ ƒ } t | j d t ƒ ƒ } x* t	 | | ƒ D] \ } } t | | ƒ q‰ W|  j j
 d ƒ d  S(   NR/   i    (   R$   R   R0   R(   R1   R2   R3   R%   R4   t   zipR5   (   R-   R6   R7   t   get   het   at   b(    (    sA   lib/python2.7/site-packages/networkx/readwrite/tests/test_gexf.pyt   test_read_attribute_graphml©   s    	.c         C   s8   d } t  j | j d ƒ ƒ } t t j t j | ƒ d  S(   Ns‹  <?xml version="1.0" encoding="UTF-8"?>
<gexf xmlns="http://www.gexf.net/1.2draft" version='1.2'>
    <graph mode="static" defaultedgetype="undirected" name="">
        <nodes>
            <node id="0" label="Hello" />
            <node id="1" label="Word" />
        </nodes>
        <edges>
            <edge id="0" source="0" target="1" type="directed"/>
        </edges>
    </graph>
</gexf>
s   UTF-8(   R   R    R!   t   assert_raisesR   t   NetworkXErrorR0   (   R-   t   sR:   (    (    sA   lib/python2.7/site-packages/networkx/readwrite/tests/test_gexf.pyt    test_directed_edge_in_undirected³   s    c         C   s8   d } t  j | j d ƒ ƒ } t t j t j | ƒ d  S(   Ns‹  <?xml version="1.0" encoding="UTF-8"?>
<gexf xmlns="http://www.gexf.net/1.2draft" version='1.2'>
    <graph mode="static" defaultedgetype="directed" name="">
        <nodes>
            <node id="0" label="Hello" />
            <node id="1" label="Word" />
        </nodes>
        <edges>
            <edge id="0" source="0" target="1" type="undirected"/>
        </edges>
    </graph>
</gexf>
s   UTF-8(   R   R    R!   RE   R   RF   R0   (   R-   RG   R:   (    (    sA   lib/python2.7/site-packages/networkx/readwrite/tests/test_gexf.pyt    test_undirected_edge_in_directedÄ   s    c         C   s8   d } t  j | j d ƒ ƒ } t t j t j | ƒ d  S(   Ns   <?xml version="1.0" encoding="UTF-8"?>
<gexf xmlns="http://www.gexf.net/1.2draft" version='1.2'>
    <graph mode="static" defaultedgetype="directed" name="">
        <nodes>
            <node id="0" label="Hello">
              <attvalues>
                <attvalue for='0' value='1'/>
              </attvalues>
            </node>
            <node id="1" label="Word" />
        </nodes>
        <edges>
            <edge id="0" source="0" target="1" type="undirected"/>
        </edges>
    </graph>
</gexf>
s   UTF-8(   R   R    R!   RE   R   RF   R0   (   R-   RG   R:   (    (    sA   lib/python2.7/site-packages/networkx/readwrite/tests/test_gexf.pyt   test_key_raisesÕ   s    c         C   sV   d } t  j | j d ƒ ƒ } t j | d t ƒ} t t | j ƒ  ƒ d d g ƒ d  S(   Nsy  <?xml version="1.0" encoding="UTF-8"?>
<gexf xmlns="http://www.gexf.net/1.2draft" version='1.2'>
    <graph mode="static" defaultedgetype="directed" name="">
        <nodes>
            <node id="0" label="Hello" />
            <node id="1" label="Word" />
        </nodes>
        <edges>
            <edge id="0" source="0" target="1"/>
        </edges>
    </graph>
</gexf>
s   UTF-8t   relabelR
   t   Word(	   R   R    R!   R   R0   R%   R1   R2   R3   (   R-   RG   R:   R6   (    (    sA   lib/python2.7/site-packages/networkx/readwrite/tests/test_gexf.pyt   test_relabelê   s    c         C   s<  t  j ƒ  } | j d d d d d ƒt  j | d d d d g ƒ | j d d d	 d ƒi d
 d 6| j d <i d d	 6| j d <t j ƒ  } t  j | | ƒ | j	 d ƒ t  j
 | d t ƒ} t t | j ƒ  ƒ t | j ƒ  ƒ ƒ t t d „  | j ƒ  Dƒ ƒ t d „  | j ƒ  Dƒ ƒ ƒ | j d =t | j | j ƒ d  S(   Ni   R	   R   t   colort   greeni    i   i   t   foot   yellowR   i   t   edge_defaultt	   node_typec         s   s   |  ] } t  | ƒ Vq d  S(   N(   R2   (   R<   R=   (    (    sA   lib/python2.7/site-packages/networkx/readwrite/tests/test_gexf.pys	   <genexpr>	  s    c         s   s   |  ] } t  | ƒ Vq d  S(   N(   R2   (   R<   R=   (    (    sA   lib/python2.7/site-packages/networkx/readwrite/tests/test_gexf.pys	   <genexpr>
  s    t   mode(   R   R*   R   t   add_pathR   R&   R   R    R9   R5   R0   t   intR1   R2   R3   R4   (   R-   R6   R:   R7   (    (    sA   lib/python2.7/site-packages/networkx/readwrite/tests/test_gexf.pyt   test_default_attributeü   s     %
c         C   s•   t  j ƒ  } | j d d d d d ƒt j ƒ  } t  j | | ƒ | j d ƒ t  j | d t ƒ} t	 t
 | ƒ d g ƒ t	 | j d d d ƒ d  S(	   Ni   R   i   R	   iM   i    RS   t   77(   R   R*   R   R   R    R9   R5   R0   RV   R1   t   listR3   (   R-   R6   R:   R7   (    (    sA   lib/python2.7/site-packages/networkx/readwrite/tests/test_gexf.pyt   test_serialize_ints_to_strings  s    c         C   sÙ   t  j ƒ  } | j d d d g ƒ xm t d ƒ D]_ } | | j | d <| | j | d <| | j | d <| | j | d	 <| d | j | d
 <q/ Wd j t  j t j d ƒ ƒ } d j	 t  j
 | ƒ ƒ } t | | ƒ d  S(   Ni    i   i   i   i   R   R	   t   pidt   startt   ends  <gexf version="1.2" xmlns="http://www.gexf.net/1.2draft" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/XMLSchema-instance">
  <graph defaultedgetype="undirected" mode="dynamic" name="" timeformat="long">
    <meta>
      <creator>NetworkX {}</creator>
      <lastmodified>{}</lastmodified>
    </meta>
    <nodes>
      <node end="1" id="0" label="0" pid="0" start="0" />
      <node end="2" id="1" label="1" pid="1" start="1" />
      <node end="3" id="2" label="2" pid="2" start="2" />
      <node end="4" id="3" label="3" pid="3" start="3" />
    </nodes>
    <edges>
      <edge id="0" source="0" target="1" />
      <edge id="1" source="1" target="2" />
      <edge id="2" source="2" target="3" />
    </edges>
  </graph>
</gexf>s   %d/%m/%Ys   
(   i    i   (   i   i   (   i   i   (   R   t   OrderedGrapht   add_edges_fromt   rangeR3   t   formatt   __version__t   timet   strftimet   joint   generate_gexfR1   (   R-   R6   t   it   expectedt   obtained(    (    sA   lib/python2.7/site-packages/networkx/readwrite/tests/test_gexf.pyt   test_write_with_node_attributes  s    c         C   sy   t  j ƒ  } | j d d t ƒt j ƒ  } t  j | | ƒ | j d ƒ t  j | d t	 ƒ} t
 | j d d t ƒ d  S(   Ni   t   testattri    RS   (   R   R*   R   R%   R   R    R9   R5   R0   RV   R1   R3   (   R-   R6   R:   R7   (    (    sA   lib/python2.7/site-packages/networkx/readwrite/tests/test_gexf.pyt	   test_bool<  s    (   t   __name__t
   __module__t   classmethodR   R.   R8   R;   R>   RD   RH   RI   RJ   RM   RW   RZ   Rj   Rl   (    (    (    sA   lib/python2.7/site-packages/networkx/readwrite/tests/test_gexf.pyR   
   s   	y						
						
	!(	   R   Rc   t   noseR    t
   nose.toolst   networkxR   t   objectR   (    (    (    sA   lib/python2.7/site-packages/networkx/readwrite/tests/test_gexf.pyt   <module>   s
   
