ó
šIc           @   sÙ   d  d l  Z  d  d l Z d  d l Td  d l Td  d l Td  d l Td e  j f d „  ƒ  YZ d e  j f d „  ƒ  YZ d e  j f d „  ƒ  YZ	 d	 e  j f d
 „  ƒ  YZ
 e d k rÕ e  j d d ƒ Z e  j d e ƒ n  d S(   iÿÿÿÿN(   t   *t   HashSetTestCasec           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sÃ   |  j  t d d g ƒ t d d g ƒ d ƒ |  j  t ƒ  t ƒ  d ƒ |  j t d d d g ƒ t ƒ  d ƒ |  j t d d g ƒ t d d d g ƒ d ƒ |  j t d d g ƒ t d g ƒ d ƒ d  S(	   Nt   at   bs   not equal to similars   empty set not equal to similart   cs   non-empty equal to emptys   equal to supersets   equal to subset(   t   assertEqualt   HashSett   assertNotEqual(   t   self(    (    s   test_Pathway.pyt
   testEquals   s
    +%.c         C   s±   t  ƒ  } |  j t | ƒ d k d ƒ | j d ƒ | j d ƒ |  j t | ƒ d k d ƒ | j d ƒ |  j t | ƒ d k d ƒ | j d ƒ |  j t | ƒ d k d	 ƒ d  S(
   Ni    s   incorrect default sizeR   R   i   s   incorrect sizei   s   incorrect size after removals"   incorrect size after duplicate add(   R   t
   failUnlesst   lent   addt   remove(   R   R   (    (    s   test_Pathway.pyt   testLen   s    	c         C   s  t  ƒ  } |  j d | k d ƒ |  j | j d ƒ d ƒ t  d d d d g ƒ } |  j d | k d ƒ |  j d | k d ƒ |  j d | k d	 ƒ |  j d
 | k d	 ƒ |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ |  j | j d
 ƒ d ƒ d  S(   NR   s   element in empty sets   element in empty set (2)R   R   t   ds   contained element not foundt   es   not contained element foundiD   s   contained element not found (2)s   not contained element found (2)(   R   t   assert_t   containsR
   (   R   t   nR   (    (    s   test_Pathway.pyt   testContains%   s    	c         C   ss   t  d d d d d g ƒ } | j ƒ  } | j ƒ  |  j | d d d d d g d ƒ g  } |  j d | k d ƒ d  S(   NR   R   R   R   R   s   incorrect lists   set rep exposure(   R   t   listt   sortR   R
   (   R   R   t   l(    (    s   test_Pathway.pyt   testList3   s    
"c      
   C   sÐ  t  ƒ  } t  d d d g ƒ } t  d d d d g ƒ } t  d d g ƒ } |  j | j | ƒ t  d d d d d d g ƒ d	 ƒ |  j | j | ƒ | d
 ƒ |  j | j | ƒ t  d g ƒ d ƒ |  j | j | ƒ t  ƒ  d ƒ |  j | j | ƒ t  ƒ  d ƒ |  j | j | ƒ t  d d g ƒ d ƒ |  j | j | ƒ t  d d d g ƒ d ƒ |  j | j | ƒ t  d d d g ƒ d ƒ |  j | j | ƒ t  d d d d d d g ƒ d ƒ |  j | j | ƒ t  ƒ  d ƒ d  S(   NR   R   R   R   R   t   ft   gt   hs   incorrect unions   incorrect union with empty sets   incorrect intersections%   incorrect intersection with empty sets   incorrect differences   incorrect cartesian product(   R   R   (   R   R   (   R   R   (   R   R   (   R   R   (   R   R   (   R   R   t   uniont   intersectiont
   differencet	   cartesian(   R   R   R   R   R   (    (    s   test_Pathway.pyt
   testSetOps;   s"    	4%(++(   t   __name__t
   __module__R	   R   R   R   R    (    (    (    s   test_Pathway.pyR      s
   				t   GraphTestCasec           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   si  t  d d d g ƒ } | j d d d ƒ | j d d d ƒ | j d d d ƒ t  d d d g ƒ } |  j | | d ƒ | j d d d ƒ |  j | | d ƒ | j d d d ƒ | j d d d ƒ |  j | | d ƒ t  d d d g ƒ } | j d d d ƒ | j d d d ƒ | j d d d ƒ |  j | | d	 ƒ |  j | t  ƒ  d
 ƒ |  j t  ƒ  t  ƒ  d ƒ d  S(   NR   R   R   t   label1t   label2s    equal to similar nodes, no edgess#   equal to similar nodes, edge subsets   not equal to similars&   equal to similar with different labelss   equal to empty graphs   empty graph not equal to self(   t   Grapht   add_edgeR   R   (   R   R   R   R   (    (    s   test_Pathway.pyR	   U   s$    c         C   s´   t  ƒ  } |  j | j ƒ  g  d ƒ | j d ƒ |  j | j ƒ  d g d ƒ | j d ƒ |  j | j ƒ  d g d ƒ | j d ƒ | j ƒ  } | j ƒ  |  j | d d g d ƒ d  S(   Ns   default graph not emptyR   s   one node not addeds   duplicate node addedR   s   second node not added(   R&   R   t   nodest   add_nodeR   (   R   R   R   (    (    s   test_Pathway.pyt	   testNodesi   s    	
c         C   s  t  d d d d g ƒ } | j d d d ƒ |  j | j d ƒ d g d ƒ | j d d d ƒ |  j | j d ƒ d g d ƒ | j d d d	 ƒ |  j | j d ƒ d g d ƒ | j d ƒ } | j ƒ  |  j | d d g d
 ƒ |  j | j d ƒ g  d ƒ |  j | j d ƒ d g d ƒ d  S(   NR   R   R   R   R$   s   incorrect child edgesR%   s   incorrect parent edgest   label3s   incorrect childrens    incorrect children for singletons   incorrect parents(   R   R$   (   R   R%   (   R   R+   (   R&   R'   R   t   child_edgest   parent_edgest   childrenR   t   parents(   R   R   R   (    (    s   test_Pathway.pyt	   testEdgesu   s    
c         C   sÙ   t  d d d d d g ƒ } | j d d d ƒ | j d d d ƒ | j d d d ƒ | j d d d ƒ | j d d d	 ƒ | j d d d
 ƒ | j d ƒ t  d d d d g ƒ } | j d d d
 ƒ |  j | | ƒ d  S(   NR   R   R   R   R   R$   R%   R+   t   label4t   label5(   R&   R'   t   remove_nodeR   (   R   R   R   (    (    s   test_Pathway.pyt   testRemoveNodeƒ   s    (   R!   R"   R	   R*   R0   R4   (    (    (    s   test_Pathway.pyR#   S   s   			t   MultiGraphTestCasec           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   si  t  d d d g ƒ } | j d d d ƒ | j d d d ƒ | j d d d ƒ t  d d d g ƒ } |  j | | d ƒ | j d d d ƒ |  j | | d ƒ | j d d d ƒ | j d d d ƒ |  j | | d ƒ t  d d d g ƒ } | j d d d ƒ | j d d d ƒ | j d d d ƒ |  j | | d	 ƒ |  j | t  ƒ  d
 ƒ |  j t  ƒ  t  ƒ  d ƒ d  S(   NR   R   R   R$   R%   s    equal to similar nodes, no edgess#   equal to similar nodes, edge subsets   not equal to similars&   equal to similar with different labelss   equal to empty graphs   empty graph not equal to self(   t
   MultiGraphR'   R   R   (   R   R   R   R   (    (    s   test_Pathway.pyR	   “   s$    c         C   s´   t  ƒ  } |  j | j ƒ  g  d ƒ | j d ƒ |  j | j ƒ  d g d ƒ | j d ƒ |  j | j ƒ  d g d ƒ | j d ƒ | j ƒ  } | j ƒ  |  j | d d g d ƒ d  S(   Ns   default graph not emptyR   s   one node not addeds   duplicate node addedR   s   second node not added(   R6   R   R(   R)   R   (   R   R   R   (    (    s   test_Pathway.pyR*   §   s    	
c         C   sd  t  d d d d g ƒ } | j d d d ƒ |  j | j d ƒ d g d ƒ | j d d d ƒ | j d ƒ } | j ƒ  |  j | d d g d ƒ | j d d d ƒ |  j | j d ƒ d g d ƒ | j d d d	 ƒ |  j | j d ƒ d g d ƒ | j d ƒ } | j ƒ  |  j | d d g d
 ƒ |  j | j d ƒ g  d ƒ |  j | j d ƒ d g d ƒ d  S(   NR   R   R   R   R$   s   incorrect child edgesR%   s   incorrect parent edgesR+   s   incorrect childrens    incorrect children for singletons   incorrect parents(   R   R$   (   R   R$   (   R   R%   (   R   R%   (   R   R+   (   R6   R'   R   R,   R   R-   R.   R/   (   R   R   R   (    (    s   test_Pathway.pyR0   ³   s     

c         C   sÙ   t  d d d d d g ƒ } | j d d d ƒ | j d d d ƒ | j d d d ƒ | j d d d ƒ | j d d d	 ƒ | j d d d
 ƒ | j d ƒ t  d d d d g ƒ } | j d d d
 ƒ |  j | | ƒ d  S(   NR   R   R   R   R   R$   R%   R+   R1   R2   (   R6   R'   R3   R   (   R   R   R   (    (    s   test_Pathway.pyR4   Å   s    (   R!   R"   R	   R*   R0   R4   (    (    (    s   test_Pathway.pyR5   ‘   s   			t   ReactionTestCasec           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   sâ   t  ƒ  |  _ t  i d d 6ƒ |  _ t  i d d 6ƒ |  _ t  i d d 6d d 6ƒ |  _ t  i d d 6d d 6d d 6ƒ |  _ t  i d d 6d d 6ƒ |  _ t  i d d 6d d 6ƒ |  _ t  i d d 6d d 6d d 6d d	 6ƒ |  _ d  S(
   Ni   R   iÿÿÿÿR   i    R   i   R   R   (	   t   Reactiont   r_emptyt   r_prodt   r_destt   r_1t   r_1it   r_2t   r_3t   r_4(   R   (    (    s   test_Pathway.pyt   setUpÕ   s    $c         C   s6   |  j  |  j |  j d ƒ |  j |  j |  j d ƒ d  S(   Ns   not equal to similars   equal to different(   t   assertEqualsR<   R=   t   assertNotEqualsR?   R@   (   R   (    (    s   test_Pathway.pyt   testEqß   s    c         C   s¥   |  j  |  j j ƒ  |  j d ƒ |  j  |  j j ƒ  |  j d ƒ |  j  |  j j ƒ  t i d d 6d d 6d d 6d d	 6ƒ d ƒ |  j  |  j j ƒ  j ƒ  |  j d
 ƒ d  S(   Ns   empty reversed not emptys&   reversed reaction not equal to similari   R   R   iÿÿÿÿR   iþÿÿÿR   s   double reversal not identity(   RB   R9   t   reverseR:   R;   R@   R8   R?   (   R   (    (    s   test_Pathway.pyt   testRevã   s    7(   R!   R"   RA   RD   RF   (    (    (    s   test_Pathway.pyR7   Ó   s   	
	t   __main__t	   verbosityi   t
   testRunner(   t   unittestt   syst   Bio.Pathwayt   Bio.Pathway.Rep.HashSett   Bio.Pathway.Rep.Grapht   Bio.Pathway.Rep.MultiGrapht   TestCaseR   R#   R5   R7   R!   t   TextTestRunnert   runnert   main(    (    (    s   test_Pathway.pyt   <module>   s   



B>B