ó
 ,µ[c           @   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 Z	 d  d l
 m Z d  d l
 m Z d e f d	 „  ƒ  YZ d
 e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   BytesION(   t   TestCase(   t   assert_equal(   t   assert_true(   t   assert_edges_equal(   t   assert_nodes_equalt   TestSparseGraph6c           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   sÌ   d } t  j | ƒ } t t | j ƒ  ƒ d d d d d d d d	 d
 d d d d d d d d d g ƒ t | j ƒ  d d d d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. g ƒ d  S(/   Ns   :Q___eDcdFcDeFcE`GaJ`IaHbKNbLMi    i   i   i   i   i   i   i   i   i	   i
   i   i   i   i   i   i   i   (   i    i   (   i    i   (   i    i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i	   (   i   i   (   i   i   (   i   i   (   i   i	   (   i   i
   (   i   i   (   i   i   (   i   i
   (   i   i   (   i	   i   (   i
   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   t   nxt   from_sparse6_bytesR   t   sortedt   nodesR   t   edges(   t   selft   datat   G(    (    sD   lib/python2.7/site-packages/networkx/readwrite/tests/test_sparse6.pyt   test_from_sparse6_bytes   s    c         C   sZ   d } t  j | ƒ } t t | ƒ t  j ƒ d } t  j | ƒ } t t | ƒ t  j ƒ d  S(   Ns   :Ans   :Ab(   R   R   R   t   typet   Grapht
   MultiGraph(   R   t
   graph_dataR   t   multigraph_datat   M(    (    sD   lib/python2.7/site-packages/networkx/readwrite/tests/test_sparse6.pyt    test_from_bytes_multigraph_graph   s    c         C   sf   d } t  j | ƒ } t | ƒ } t  j | ƒ } t | j ƒ  | j ƒ  ƒ t | j ƒ  | j ƒ  ƒ d  S(   Ns   :Q___eDcdFcDeFcE`GaJ`IaHbKNbLM(   R   R   R    t   read_sparse6R   R
   R   R   (   R   R   R   t   fht   Gin(    (    sD   lib/python2.7/site-packages/networkx/readwrite/tests/test_sparse6.pyt   test_read_sparse6$   s    c         C   s’   d } t  | ƒ } t j | ƒ } t t | ƒ d ƒ xW | D]O } t | j ƒ  d d d d d d d d	 d
 d d d d d d d d d g ƒ q; Wd  S(   Ns>   :Q___eDcdFcDeFcE`GaJ`IaHbKNbLM
:Q___dCfDEdcEgcbEGbFIaJ`JaHN`IMi   i    i   i   i   i   i   i   i   i	   i
   i   i   i   i   i   i   i   (   R    R   R   R   t   lenR   R
   (   R   R   R   t   glistR   (    (    sD   lib/python2.7/site-packages/networkx/readwrite/tests/test_sparse6.pyt   test_read_many_graph6,   s    (   t   __name__t
   __module__R   R   R   R   (    (    (    sD   lib/python2.7/site-packages/networkx/readwrite/tests/test_sparse6.pyR      s   			t   TestWriteSparse6c           B   sz   e  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(   sˆ   Unit tests for writing graphs in the sparse6 format.

    Most of the test cases were checked against the sparse6 encoder in Sage.

    c         C   s?   t  j ƒ  } t ƒ  } t  j | | ƒ |  j | j ƒ  d ƒ d  S(   Ns   >>sparse6<<:?
(   R   t
   null_graphR    t   write_sparse6t   assertEqualt   getvalue(   R   R   t   result(    (    sD   lib/python2.7/site-packages/networkx/readwrite/tests/test_sparse6.pyt   test_null_graph@   s    	c         C   s?   t  j ƒ  } t ƒ  } t  j | | ƒ |  j | j ƒ  d ƒ d  S(   Ns   >>sparse6<<:@
(   R   t   trivial_graphR    R"   R#   R$   (   R   R   R%   (    (    sD   lib/python2.7/site-packages/networkx/readwrite/tests/test_sparse6.pyt   test_trivial_graphF   s    	c         C   sB   t  j d ƒ } t ƒ  } t  j | | ƒ |  j | j ƒ  d ƒ d  S(   Ni   s   >>sparse6<<:D
(   R   t   empty_graphR    R"   R#   R$   (   R   R   R%   (    (    sD   lib/python2.7/site-packages/networkx/readwrite/tests/test_sparse6.pyt   test_empty_graphL   s    	c         C   sB   t  j d ƒ } t ƒ  } t  j | | ƒ |  j | j ƒ  d ƒ d  S(   NiD   s   >>sparse6<<:~?@C
(   R   R)   R    R"   R#   R$   (   R   R   R%   (    (    sD   lib/python2.7/site-packages/networkx/readwrite/tests/test_sparse6.pyt   test_large_empty_graphR   s    	c         C   sB   t  j d ƒ } t ƒ  } t  j | | ƒ |  j | j ƒ  d ƒ d  S(   Nið s   >>sparse6<<:~~???~?@
(   R   R)   R    R"   R#   R$   (   R   R   R%   (    (    sD   lib/python2.7/site-packages/networkx/readwrite/tests/test_sparse6.pyt   test_very_large_empty_graphX   s    	c         C   sB   t  j d ƒ } t ƒ  } t  j | | ƒ |  j | j ƒ  d ƒ d  S(   Ni   s   >>sparse6<<:CcKI
(   R   t   complete_graphR    R"   R#   R$   (   R   R   R%   (    (    sD   lib/python2.7/site-packages/networkx/readwrite/tests/test_sparse6.pyt   test_complete_graph^   s    	c         C   sH   t  j d ƒ } t ƒ  } t  j | | d t ƒ|  j | j ƒ  d ƒ d  S(   Ni   t   headers   :CcKI
(   R   R-   R    R"   t   FalseR#   R$   (   R   R   R%   (    (    sD   lib/python2.7/site-packages/networkx/readwrite/tests/test_sparse6.pyt   test_no_headerd   s    	c         C   su   d
 } xh t  | d d ƒD]T \ } } t j | ƒ } t ƒ  } t j | | d t ƒ|  j | j ƒ  | d	 ƒ q Wd  S(   Ns   :Cdvs   :DaYns   :EaYnNs   :FaYnLs   :GaYnLzt   starti   R/   s   
(   s   :Cdvs   :DaYns   :EaYnNs   :FaYnLs   :GaYnLz(   t	   enumerateR   t
   path_graphR    R"   R0   R#   R$   (   R   t   codest   nt   codeR   R%   (    (    sD   lib/python2.7/site-packages/networkx/readwrite/tests/test_sparse6.pyt   test_paddingj   s    	c         C   sT   t  j d d ƒ } t ƒ  } t  j | | ƒ d d d d } t | j ƒ  | ƒ d  S(   Ni   i	   s   >>sparse6<<:Nks   ?G`cJs   
(   R   t   complete_bipartite_graphR    R"   R   R$   (   R   R   R%   t   expected(    (    sD   lib/python2.7/site-packages/networkx/readwrite/tests/test_sparse6.pyt   test_complete_bipartiter   s
    	c         C   sß   xØ t  t d ƒ ƒ d d d d d d g D]® } t d | | | d ƒ } t j j | | d	 | ƒ} t ƒ  } t j | | d
 t ƒ| j	 ƒ  j
 ƒ  } t j | ƒ } t | j ƒ  | j ƒ  ƒ t | j ƒ  | j ƒ  ƒ q) Wd  S(   Ni   i   i/   i>   i?   i@   iH   i   t   seedR/   (   t   listt   ranget   minR   t   random_graphst   gnm_random_graphR    R"   R0   R$   t   rstripR   R   t   orderR   R   (   R   t   it   mt   gt   gstrt   g2(    (    sD   lib/python2.7/site-packages/networkx/readwrite/tests/test_sparse6.pyt   test_read_write_inversez   s    /	c         C   s6   |  j  t j ƒ  t j t j ƒ  t ƒ  ƒ Wd  QXd  S(   N(   t   assertRaisesR   t   NetworkXNotImplementedR"   t   DiGraphR    (   R   (    (    sD   lib/python2.7/site-packages/networkx/readwrite/tests/test_sparse6.pyt   no_directed_graphs†   s    c         C   sƒ   t  j ƒ   } | j } Wd  QXt j t j ƒ  | ƒ t | d d ƒ} |  j | j ƒ  d ƒ | j	 ƒ  d d  l
 } | j | ƒ d  S(   Nt   modet   rbs   >>sparse6<<:?
iÿÿÿÿ(   t   tempfilet   NamedTemporaryFilet   nameR   R"   R!   t   openR#   t   readt   closet   ost   remove(   R   t   ft   fullfilenameR   RV   (    (    sD   lib/python2.7/site-packages/networkx/readwrite/tests/test_sparse6.pyt   test_write_pathŠ   s    
(   R   R   t   __doc__R&   R(   R*   R+   R,   R.   R1   R8   R;   RI   RM   RZ   (    (    (    sD   lib/python2.7/site-packages/networkx/readwrite/tests/test_sparse6.pyR    9   s   											(   t   ioR    RP   t   unittestR   t
   nose.toolsR   R   t   networkxR   t   networkx.testing.utilsR   R   t   objectR   R    (    (    (    sD   lib/python2.7/site-packages/networkx/readwrite/tests/test_sparse6.pyt   <module>   s   ,