l
X_Sc               @   s   d  Z  d d l Z d d l Z d d l Td d l m Z d d l TGd   d e j  Z	 Gd   d e j  Z
 Gd	   d
 e j  Z Gd   d e j  Z Gd   d e j  Z Gd   d e j  Z e d k r e j   n  d S(   u   Unit test for Scopi    N(   u   *(   u   StringIOc             B   sD   |  Ee  Z d    Z d   Z d   Z d   Z d   Z d   Z d S(   c             C   s  t  d  } zT | j   } | j   t  d  } | j   } | j   t  d  } | j   } Wd  | j   Xt j t |  t |  t |   } t   } | j |  | j   | k s t | j     t   } | j	 |  | j   | k s	t | j     t   } | j
 |  | j   | k sCt | j     | j d }	 |  j |	 j d  | j }
 |  j t |
  d  |  j |
 d j d  |  j d | j k  |  j d
 | j k  d  S(   Nu   scop/dir.cla.scop.txt_testu   scop/dir.des.scop.txt_testu   scop/dir.hie.scop.txt_testu   d1hbia_i:  i   i   i:  io   u   no such domaini(   u   testdata_streamu   readu   closeu   Scopu   parse_filesu   StringIOu	   write_clau   getvalueu   AssertionErroru	   write_desu	   write_hieu   domains_by_sidu   assertEqualu   sunidu   domainsu   lenu   assertFalseu   nodes_by_sunid(   u   selfu   fu   clau   desu   hieu   scopu   cla_outu   des_outu   hie_outu   domainu   domains(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu	   testParse'   s6    

'	$	$	$	c             C   s   |  j  t d d  d  |  j  t d d  d  |  j  t d d  d
  |  j  t d d  d  |  j  t d d  d  |  j  t d d  d  |  j  t d d	  d  d  S(   Nu   a.1.1.1i    u   a.1.1.2i   u   a.1.1.11u   a.1.2.2u   a.5.1.11u   b.1.2.2u   b.1.2ii(   u   assertEqualu   cmp_sccs(   u   self(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   testSccsOrderM   s    c             C   s   |  j  t d d  d  |  j  t d d  d  |  j  t d d  d  |  j  t d d  d  |  j  t d d  d
  |  j  t d d  d  |  j  t d d	  d  d  S(   Nu   a.1.1.1i   u   a.1.1.2u   a.1.1.11u   a.1.2.2i    u   a.5.1.11u   b.1.2.2u   b.1.2ii(   u   assertEqualu   sccs_relation(   u   self(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   test_sccs_relationsV   s    c             C   sw   t  j j t  j j t  d d  } t j d | d d  } |  j t | t   | j	 d } |  j
 | j d  d  S(   Ni    u	   data/scopu   dir_pathu   versionu   testu   d1hbia_i:  (   u   osu   pathu   joinu   splitu   __file__u   Scopu   parseu
   assertTrueu
   isinstanceu   domains_by_sidu   assertEqualu   sunid(   u   selfu   dir_pathu   scopu   domain(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   testConstructFromDirectorya   s
    %c             C   s   t  j j t  j j t  d d  } t j d | d d  } | j d } | j d  } |  j	 | j
 d  | j d	  } |  j	 | j
 d
  | j d  } |  j | d  k  | j d  } |  j | d  k  d  S(   Ni    u	   data/scopu   dir_pathu   versionu   testu   d1hbia_u   cfiy  u   superfamilyiz  u   px(   u   osu   pathu   joinu   splitu   __file__u   Scopu   parseu   domains_by_sidu	   ascendentu   assertEqualu   sunidu
   assertTrueu   None(   u   selfu   dir_pathu   scopu   domainu   foldu   sfu   pxu   px2(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   testGetAscendenth   s    %c             C   s   t  j j t  j j t  d d  } t j d | d d  } | j d } | j d  } |  j	 t
 |  d  x! | D] } |  j	 | j d  qv W| j d	  } |  j	 t
 |  d
  x! | D] } |  j	 | j d  q W| j d  } |  j	 | g   d S(   u   Test getDescendents methodi    u	   data/scopu   dir_pathu   versionu   testiy  u   pxi   u   superfamilyi   u   sfu   clN(   u   osu   pathu   joinu   splitu   __file__u   Scopu   parseu   nodes_by_sunidu   descendentsu   assertEqualu   lenu   type(   u   selfu   dir_pathu   scopu   foldu   domainsu   du   sfsu   cl(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   test_get_descendentsz   s    %N(   u   __name__u
   __module__u	   testParseu   testSccsOrderu   test_sccs_relationsu   testConstructFromDirectoryu   testGetAscendentu   test_get_descendents(   u
   __locals__(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu	   test_scop%   s   
	&					u	   test_scopc             B   s;   |  Ee  Z d    Z d   Z d   Z d   Z d   Z d S(   c             C   s&   t  d  } | j |  _ | j   d  S(   Nu   scop/dir.des.scop.txt_test(   u   testdata_streamu   nameu   filenameu   close(   u   selfu   file(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   setUp   s    c          
   C   sV   t  |  j  A } d } x! t j |  D] } | d 7} q( W|  j | d  Wd  QXd  S(   Ni    i   i   (   u   openu   filenameu	   DesRecordu   recordsu   assertEqual(   u   selfu   fu   countu   rec(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu
   test_parse   s
    c             C   s[   t  |  j  F } x< | D]4 } t |  } |  j t |  j   | j    q WWd  QXd  S(   N(   u   openu   filenameu	   DesRecordu   assertEqualu   stru   rstrip(   u   selfu   fu   lineu   rec(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   testStr   s    c             C   s   d } |  j  t t |  d  S(   Nu   49268	sp	b.1.2.1	-
(   u   assertRaisesu
   ValueErroru	   DesRecord(   u   selfu
   corruptRec(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu	   testError   s    c             C   s   d } d } t  |  } |  j | j | d  |  j | j | d  |  j | j | d	  |  j | j | d
  |  j | j | d  d  S(   Nu,   49268	sp	b.1.2.1	-	Human (Homo sapiens)    
it  u   spu   b.1.2.1u    u   Human (Homo sapiens)i    i   i   i   i   (   it  u   spu   b.1.2.1u    u   Human (Homo sapiens)(   u	   DesRecordu   assertEqualu   sunidu   nodetypeu   sccsu   nameu   description(   u   selfu   recLineu	   recFieldsu   rec(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu
   testRecord   s    N(   u   __name__u
   __module__u   setUpu
   test_parseu   testStru	   testErroru
   testRecord(   u
   __locals__(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   DesTests   s
   
				u   DesTestsc             B   s;   |  Ee  Z d    Z d   Z d   Z d   Z d   Z d S(   c             C   s&   t  d  } | j |  _ | j   d  S(   Nu   scop/dir.cla.scop.txt_test(   u   testdata_streamu   nameu   filenameu   close(   u   selfu   file(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   setUp   s    c          
   C   sV   t  |  j  A } d } x! t j |  D] } | d 7} q( W|  j | d  Wd QXd S(   u   Can we parse a CLA file?i    i   i   N(   u   openu   filenameu	   ClaRecordu   recordsu   assertEqual(   u   selfu   fu   countu   rec(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu	   testParse   s
    c             C   s[   t  |  j  F } x< | D]4 } t |  } |  j t |  j   | j    q WWd  QXd  S(   N(   u   openu   filenameu	   ClaRecordu   assertEqualu   stru   rstrip(   u   selfu   fu   lineu   rec(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   testStr   s    c             C   s   d } |  j  t t |  d  S(   Nu   49268	sp	b.1.2.1	-
(   u   assertRaisesu
   ValueErroru	   ClaRecord(   u   selfu
   corruptRec(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu	   testError   s    c          
   C   s   d } t  |  } |  j | j d  |  j | j j d  |  j | j j d d f  |  j | j d	  |  j | j d
  |  j | j d d g d d g d d g d d g d d g d d g d d
 g g  d  S(   Nue   d1dan.1	1dan	T:,U:91-106	b.1.2.1	21953	cl=48724,cf=48725,sf=49265,fa=49266,dm=49267,sp=49268,px=21953u   d1dan.1u   1danu   Tu    u   Uu   91u   106u   b.1.2.1iU  u   cliT  u   cfiU  u   sfiq  u   fair  u   dmis  u   spit  u   px(   u   Tu    u    (   u   Uu   91u   106(	   u	   ClaRecordu   assertEqualu   sidu   residuesu   pdbidu	   fragmentsu   sccsu   sunidu	   hierarchy(   u   selfu   recLineu   rec(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu
   testRecord   s    $N(   u   __name__u
   __module__u   setUpu	   testParseu   testStru	   testErroru
   testRecord(   u
   __locals__(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   test_scop_cla   s
   
				u   test_scop_clac             B   s;   |  Ee  Z d    Z d   Z d   Z d   Z d   Z d S(   c             C   s&   t  d  } | j |  _ | j   d  S(   Nu   scop/domtest.txt(   u   testdata_streamu   nameu   filenameu   close(   u   selfu   file(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   setUp   s    c          
   C   sV   t  |  j  A } d } x! t j |  D] } | d 7} q( W|  j | d  Wd  QXd  S(   Ni    i   i
   (   u   openu   filenameu	   DomRecordu   recordsu   assertEqual(   u   selfu   fu   countu   rec(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu	   testParse   s
    c             C   sd   t  |  j  O } xE | D]= } | r t |  } |  j t |  j   | j    q q WWd  QXd  S(   N(   u   openu   filenameu	   DomRecordu   assertEqualu   stru   rstrip(   u   selfu   fu   lineu   rec(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   testStr   s
    c             C   s   d } |  j  t t |  d  S(   Nu   49xxx268	sp	b.1.2.1	-
(   u   assertRaisesu
   ValueErroru	   DomRecord(   u   selfu
   corruptDom(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu	   testError   s    c             C   sh   d } t  |  } |  j | j d  |  j | j j d  |  j | j j d  |  j | j d  d  S(	   Nu%   d7hbib_	7hbi	b:	1.001.001.001.001.001u   d7hbib_u   7hbiu   bu    u   1.001.001.001.001.001(   u   bu    u    (   (   u   bu    u    (   u	   DomRecordu   assertEqualu   sidu   residuesu   pdbidu	   fragmentsu	   hierarchy(   u   selfu   recLineu   rec(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu
   testRecord   s    N(   u   __name__u
   __module__u   setUpu	   testParseu   testStru	   testErroru
   testRecord(   u
   __locals__(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   DomTests   s
   
				u   DomTestsc             B   s   |  Ee  Z d  d% f d d' f d d) f d d+ f d d- f d d/ f d d1 f d d3 f d d5 f d d6 d7 f f d d8 d9 f f d d: d; d< f f f Z d   Z d   Z d    Z d!   Z d"   Z d#   Z d$ S(=   u   -u   A:u   Au    u   1:u   1u   1-100u   100u   B:1-101u   Bu   101u	   1:1a-100au   1au   100au   a:-100a--1au   au   -100au   -1au   -1-100u   -1u   A:12-19,A:23-25u   12u   19u   23u   25u   12-19,1:23-25u   0-1,1:-1a-25a,T:u   0u   25au   Tc             C   sP   xI |  j  D]> } t | d  } | j | d k s
 t t | j    q
 Wd  S(   Ni    i   (   u   resu   Residuesu	   fragmentsu   AssertionErroru   stru	   locations(   u   selfu   locu   r(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu	   testParse  s    c             C   sB   x; |  j  D]0 } t | d  } |  j t |  | d  q
 Wd  S(   Ni    (   u   resu   Residuesu   assertEqualu   str(   u   selfu   locu   r(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   testStr  s    c             C   sX   xQ |  j  D]F } t d | d d  } | j | d k s
 t t | j    q
 Wd S(   ud   Astral encloses residue subsets in brackets. Lets make sure we
        can parse those too.
        u   (i    u   )i   N(   u   resu   Residuesu	   fragmentsu   AssertionErroru   stru	   locations(   u   selfu   locu   r(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   testAstralParse  s    c             C   s   d } x |  j  D] } t d | d d  } |  j | j |  |  j t |  | d | d  t | d | d  } |  j | j |  |  j t |  | d | d  t d  } |  j | j d  |  j | j d  q Wd  S(   Nu   1ddfu   	 1ddf 	i    u   	


u    u   104l A:112-113u   104lu   Au   112u   113(   u   Au   112u   113(   (   u   Au   112u   113(   u   resu   Residuesu   assertEqualu   pdbidu   stru	   fragments(   u   selfu   pdbidu   locu   r(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu	   testPdbId  s    ""c             C   s3   t  d  } |  j | j d  | j s/ t  d  S(   Nu   1sds(   u   Residuesu   assertEqualu   pdbidu	   fragmentsu   AssertionError(   u   selfu   r(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   testJustPdbId,  s    c             C   s   |  j  t t d  d  S(   Nu   09324923423hh./;,.389(   u   assertRaisesu
   ValueErroru   Residues(   u   self(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   testParseError2  s    N(    (   u   Au    u    (   (   u   Au    u    (   u   1u    u    (   (   u   1u    u    (   u    u   1u   100(   (   u    u   1u   100(   u   Bu   1u   101(   (   u   Bu   1u   101(   u   1u   1au   100a(   (   u   1u   1au   100a(   u   au   -100au   -1a(   (   u   au   -100au   -1a(   u    u   -1u   100(   (   u    u   -1u   100(   u    u   -1u   100(   (   u    u   -1u   100(   u   Au   12u   19(   u   Au   23u   25(   u    u   12u   19(   u   1u   23u   25(   u    u   0u   1(   u   1u   -1au   25a(   u   Tu    u    (	   u   __name__u
   __module__u   resu	   testParseu   testStru   testAstralParseu	   testPdbIdu   testJustPdbIdu   testParseError(   u
   __locals__(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   ResiduesTests   s$   
														u   ResiduesTestsc             B   s2   |  Ee  Z d    Z d   Z d   Z d   Z d S(   c             C   s&   t  d  } | j |  _ | j   d  S(   Nu   scop/dir.hie.scop.txt_test(   u   testdata_streamu   nameu   filenameu   close(   u   selfu   file(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   setUp8  s    c             C   sY   t  |  j  D } d } x! t j |  D] } | d 7} q( W|  j | d d  Wd  QXd  S(   Ni    i   i   u   Wrong number of records?!(   u   openu   filenameu	   HieRecordu   recordsu   assertEqual(   u   selfu   fu   countu   rec(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu	   testParse=  s
    c             C   s[   t  |  j  F } x< | D]4 } t |  } |  j t |  j   | j    q WWd  QXd  S(   N(   u   openu   filenameu	   HieRecordu   assertEqualu   stru   rstrip(   u   selfu   fu   lineu   rec(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   testStrD  s    c             C   s   d } |  j  t t |  d  S(   Nu   4926sdfhjhfgyjdfyg(   u   assertRaisesu
   ValueErroru	   HieRecord(   u   selfu
   corruptRec(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu	   testErrorK  s    N(   u   __name__u
   __module__u   setUpu	   testParseu   testStru	   testError(   u
   __locals__(    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   HieTests6  s   
			u   HieTestsu   __main__(   u   __doc__u   os.pathu   osu   unittestu   corebio.db.scopu   corebio._py3ku   StringIOu   test_corebiou   TestCaseu	   test_scopu   DesTestsu   test_scop_clau   DomTestsu   ResiduesTestsu   HieTestsu   __name__u   main(    (    (    uJ   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_scop.pyu   <module>   s   

h$(!<