ó
šIc           @   sÆ   d  d l  Z  d  d l Z d  d l Z d  d l m Z m Z m Z m Z 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   Heterot   Chaint   Crystalt   CrystalErrort   ChainTestCasec           B   s˜   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 d „  Z d „  Z d „  Z RS(   c         C   sL   d |  _  d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d  S(	   Ns'   C A A C T A G G T C A C U A G G T C A Gs'   C T G A C C T A G T G A C C T A G T T Gs;   THR LYS LEU ASN GLY MET VAL LEU LEU CYS LYS VAL CYS GLY ASPs<   THR LYS LEU ASN GLY MET VAL LEU LEU CYS LYS VAL CYS GLY ASP s<   TYR LYS LEU ASN GLY MET VAL LEU LEU CYS LYS VAL CYS GLY ASP s<   THR LYS LEU ASN GLY MET VAL LEU LEU CYS LYS VAL CYS GLY SER s'   C A A C T A G G T C A C U A G G T C A Ts'   G A A C T A G G T C A C U A G G T C A G(   t   at   bt   ct   dt   et   ft   gt   h(   t   self(    (    s   test_Crystal.pyt   setUp   s    							c         C   sF  t  |  j ƒ } t  |  j ƒ } |  j | | ƒ t  |  j ƒ } t  |  j ƒ } |  j | | ƒ t  |  j ƒ } t  |  j ƒ } |  j | | ƒ t  |  j ƒ } t  |  j ƒ } |  j | | ƒ t  |  j ƒ } t  |  j ƒ } |  j | | ƒ t  |  j ƒ } t  |  j ƒ } |  j | | ƒ t  |  j ƒ } t  |  j	 ƒ } |  j | | ƒ d  S(   N(
   R   R   t   assertEqualsR   R   R   t   assertNotEqualsR   R	   R
   (   R   t   firstt   second(    (    s   test_Crystal.pyt
   testEquals   s*    c         C   sÖ   t  |  j ƒ } |  j j ƒ  j ƒ  } t | ƒ } |  j t | ƒ | ƒ t  |  j ƒ } |  j j ƒ  j ƒ  } t | ƒ } |  j t | ƒ | ƒ t  |  j ƒ } |  j j ƒ  j ƒ  } t | ƒ } |  j t | ƒ | ƒ d  S(   N(   R   R   t   stript   splitt   lenR   R   R   (   R   t   chaint   elementst   num_elements(    (    s   test_Crystal.pyt   testLen8   s    c         C   sh  t  |  j ƒ } | j d ƒ |  j j ƒ  j ƒ  } t | ƒ } | j d } |  j d | j ƒ |  j t | ƒ | d ƒ t  |  j ƒ } | j t d ƒ ƒ |  j j ƒ  j ƒ  } t | ƒ } | j d } |  j d | j ƒ |  j t | ƒ | d ƒ t  |  j	 ƒ } | j d ƒ |  j	 j ƒ  j ƒ  } t | ƒ } | j d } |  j d | j ƒ |  j t | ƒ | d ƒ t  |  j	 ƒ } | j t d ƒ ƒ |  j	 j ƒ  j ƒ  } t | ƒ } | j d } |  j d	 | j ƒ |  j t | ƒ | d ƒ t  |  j
 ƒ } | j d
 ƒ |  j
 j ƒ  j ƒ  } t | ƒ } | j d } |  j d
 | j ƒ |  j t | ƒ | d ƒ d  S(   Nt   Uiÿÿÿÿt   ui   t   AR   t   tt   CR   t   ser(   R   R   t   appendR   R   R   t   dataR   R    R   R   (   R   R   R   R   t   last_element(    (    s   test_Crystal.pyt
   testAppendI   sF    c         C   s  t  |  j ƒ } d } | j | d ƒ |  j j ƒ  j ƒ  } t | ƒ } | j | } |  j d | j ƒ |  j t | ƒ | d ƒ t  |  j ƒ } d } | j | d ƒ |  j j ƒ  j ƒ  } t | ƒ } | j | } |  j d | j ƒ |  j t | ƒ | d ƒ t  |  j ƒ } d } | j | t	 d ƒ ƒ |  j j ƒ  j ƒ  } t | ƒ } | j | } |  j d | j ƒ |  j t | ƒ | d ƒ t  |  j
 ƒ } d } | j | d	 ƒ |  j
 j ƒ  j ƒ  } t | ƒ } | j | } |  j d	 | j ƒ |  j t | ƒ | d ƒ d  S(
   Ni   R   i   i    R   i	   R   i   t   gln(   R   R   t   insertR   R   R   R"   R   R   R    R   (   R   R   t   iR   R   t   target_element(    (    s   test_Crystal.pyt
   testInserts   s@    c   
      C   sØ  t  |  j ƒ } |  j j ƒ  j ƒ  } t | ƒ } | j j t d ƒ ƒ } | j d ƒ | j j t d ƒ ƒ } |  j	 | | d ƒ |  j	 t | ƒ | d ƒ t  |  j
 ƒ } |  j
 j ƒ  j ƒ  } t | ƒ } | j j t d ƒ ƒ } | j d ƒ | j j t d ƒ ƒ } |  j	 | | d ƒ |  j	 t | ƒ | d ƒ t  |  j ƒ } |  j j ƒ  j ƒ  } t | ƒ } | j j t d ƒ ƒ } | j d ƒ | j j t d ƒ ƒ }	 |  j	 |	 | d ƒ |  j	 t | ƒ | d ƒ d  S(   NR   i   R   t   leu(   R   R   R   R   R   R"   t   countR    t   removeR   R   R   (
   R   R   R   R   t   num_at   num_a_remainingt   num_bt   num_b_remainingt   num_leut   num_leu_remaining(    (    s   test_Crystal.pyt
   testRemove™   s0    c         C   s  t  |  j ƒ } | j j t d ƒ ƒ } |  j | j d ƒ | ƒ t  |  j ƒ } | j j t d ƒ ƒ } |  j | j d ƒ | ƒ t  |  j ƒ } | j j t d ƒ ƒ } |  j | j d ƒ | ƒ t  |  j ƒ } | j j t d ƒ ƒ } |  j | j d ƒ | ƒ d  S(   NR   R   R*   t   cys(   R   R   R"   R+   R    R   R   R   (   R   R   R-   (    (    s   test_Crystal.pyt	   testCount·   s    c         C   sÇ   t  |  j ƒ } | j j t d ƒ ƒ } |  j | j d ƒ | ƒ t  |  j ƒ } | j j t d ƒ ƒ } |  j | j d ƒ | ƒ t  |  j ƒ } | j j t d ƒ ƒ } |  j | j d ƒ | ƒ d  S(   NR   R   t   met(   R   R   R"   t   indexR    R   R   R   (   R   R   t   index_gt   index_ct	   index_met(    (    s   test_Crystal.pyt	   testIndexÉ   s    c         C   sù   t  |  j ƒ } | j d } |  j | d | ƒ t  |  j ƒ } | j d } |  j | d | ƒ t  |  j ƒ } | j d } |  j | d | ƒ t  |  j ƒ } | j d } |  j | d | ƒ t  |  j ƒ } | j d } |  j | d | ƒ d  S(   Ni   i    i   iÿÿÿÿi   (   R   R   R"   R   R   R   (   R   R   t	   element_3t	   element_0t	   element_7R#   t	   element_8(    (    s   test_Crystal.pyt   testGetItemÖ   s    c         C   s7  t  |  j ƒ } d | d <| j d } |  j | d | ƒ t  |  j ƒ } t d ƒ | d <| j d } |  j | d | ƒ t  |  j ƒ } t d ƒ | d <| j d } |  j | d | ƒ t  |  j ƒ } d | d <| j d } |  j | d | ƒ t  |  j ƒ } d	 | d
 <| j d
 } |  j | d
 | ƒ d  S(   NR   i   R   i    R   iÿÿÿÿR   i   R    i   (   R   R   R"   R   R    R   R   (   R   R   t	   element_2R=   R#   t	   element_1t	   element_5(    (    s   test_Crystal.pyt   testSetItemë   s(    


c         C   sà  t  |  j ƒ } |  j j ƒ  j ƒ  } t | ƒ } | j j t d ƒ ƒ } | d =| j j t d ƒ ƒ } |  j | | d ƒ |  j t | ƒ | d ƒ t  |  j ƒ } |  j j ƒ  j ƒ  } t | ƒ } | j j t d ƒ ƒ } | d =d } |  j | | d ƒ |  j t | ƒ | d ƒ t  |  j	 ƒ } |  j	 j ƒ  j ƒ  } t | ƒ } | j j t d ƒ ƒ } | d =| j j t d ƒ ƒ }	 |  j |	 | d ƒ |  j t | ƒ | d ƒ t  |  j	 ƒ } |  j	 j ƒ  j ƒ  } t | ƒ } | j j t d ƒ ƒ }
 | d =| j j t d ƒ ƒ } |  j | |
 d ƒ |  j t | ƒ | d ƒ t  |  j
 ƒ } |  j
 j ƒ  j ƒ  } t | ƒ } | j j t d	 ƒ ƒ } | d =| j j t d	 ƒ ƒ } |  j | | d ƒ |  j t | ƒ | d ƒ d  S(
   NR   i   i   R   i   i    R   i   t   thr(   R   R   R   R   R   R"   R+   R    R   R   R   (   R   R   R   R   t   num_tt   num_t_remainingt   num_ut   num_u_remainingt   num_ct   num_c_remainingt   num_gt   num_g_remainingt   num_thrt   num_thr_remaining(    (    s   test_Crystal.pyt   testDelItem  sP    c         C   sÀ  t  |  j ƒ } d } t | ƒ } | } | j } |  j | j | ƒ t  |  j ƒ } d } d } | | | !} | j | | !} |  j | j | ƒ t  |  j ƒ } d } t | ƒ } | | | !} | j | | !} |  j | j | ƒ t  |  j ƒ } d } | | } | j | } |  j | j | ƒ t  |  j ƒ } d } d } | | | !} | j | | !} |  j | j | ƒ t  |  j ƒ } d } d } | | | !} | j | | !} |  j | j | ƒ d  S(   Ni    i   i   iÿÿÿÿi   i   (   R   R   R   R"   R   R   R   (   R   R   R   t   lastt   slicet   other(    (    s   test_Crystal.pyt   testGetSlice4  sF    

c         C   sy  t  |  j ƒ } d } | d d !| (t  | d d !ƒ } |  j | | ƒ t  |  j ƒ } t  |  j ƒ } d } | | d d +t  | j d  t  | ƒ j | j d ƒ } |  j | | ƒ t  |  j ƒ } t  |  j ƒ } d } | | d )t  | j d  t  | ƒ j ƒ } |  j | | ƒ t  |  j ƒ } t  |  j ƒ } d } | | d	 *t  t  | ƒ j | j d	 ƒ } |  j | | ƒ d  S(
   Ns   G T C A G 5NC G C A T G Gi   i   s   MET ILE GLU ILE LYS ASPi   i   s   CYS GLY ALA GLU CYS VAL TYRs   SER ASN GLU TRP ASP i	   (   R   R   R   R   R"   (   R   R   RR   RS   t	   old_chain(    (    s   test_Crystal.pyt   testSetSlice`  s.    +
 
 c         C   sð   t  |  j ƒ } t  |  j ƒ } | d d 5t  | j d  | j d ƒ } |  j | | ƒ t  |  j ƒ } t  |  j ƒ } | d 4t  | j d ƒ } |  j | | ƒ t  |  j ƒ } t  |  j ƒ } | d 3t  | j d  ƒ } |  j | | ƒ d  S(   Ni   i   i   i	   (   R   R   R"   R   (   R   R   RU   RS   (    (    s   test_Crystal.pyt   testDelSlice}  s    
c         C   sM   t  |  j ƒ } |  j d | k ƒ |  j d | k ƒ |  j d | k ƒ d  S(   NR    t   lyst   asp(   R   R   t   failIft
   failUnless(   R   R   (    (    s   test_Crystal.pyt   testContains‘  s    c         C   sú   d } d } | t  | ƒ } t  | ƒ | } t  | ƒ t  | ƒ } |  j | | ƒ |  j | | ƒ |  j | | ƒ |  j t | ƒ t t  | ƒ ƒ t t  | ƒ ƒ ƒ t  | ƒ } | | 7} t  | ƒ } | t  | ƒ 7} |  j | | ƒ |  j | | ƒ d  S(   Ns   G U G G U C U G A U G A G G C Cs1   G G C C G A A A C U C G U A A G A G U C A C C A C(   R   R   R   (   R   t   textat   textbt   targetat   targetbt   targetct   targetdt   targete(    (    s   test_Crystal.pyt   testAdd—  s    2
(   t   __name__t
   __module__R   R   R   R$   R)   R3   R5   R;   R@   RD   RP   RT   RV   RW   R\   Rd   (    (    (    s   test_Crystal.pyR      s    	
			*	&						/	,			t   CrystalTestCasec           B   sk   e  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   s;   t  i d d 6t d ƒ d 6d d 6t d ƒ d 6ƒ |  _ d  S(   Ns   T T G A C T C T C T T A AR   s   G A G A G T C AR   R   R   (   R   R   t   crystal(   R   (    (    s   test_Crystal.pyR   ¯  s    c         C   s)   |  j  t |  j ƒ t |  j j ƒ ƒ d  S(   N(   R   R   Rh   R"   (   R   (    (    s   test_Crystal.pyR   ·  s    c         C   s%   |  j  |  j d |  j j d ƒ d  S(   NR   (   R   Rh   R"   (   R   (    (    s   test_Crystal.pyR@   º  s    c         C   sp   t  j |  j ƒ } d } d } | | d <t | ƒ | d <|  j t | ƒ | d ƒ |  j t | ƒ | d ƒ d  S(   Ns7   MET ALA LEU THR ASN ALA GLN ILE LEU ALA VAL ILE ASP SERs?   LEU GLY GLY GLY LEU GLN GLY THR LEU HIS CYS TYR GLU ILE PRO LEUR	   R
   (   t   copyt   deepcopyRh   R   R   (   R   t   targetR	   R
   (    (    s   test_Crystal.pyRD   ½  s    
c         C   sh   t  j |  j ƒ } | d =|  j | j j d ƒ ƒ |  j | j j d ƒ ƒ |  j | j j d ƒ ƒ d  S(   NR   R   R   (   Ri   Rj   Rh   RZ   R"   t   has_keyR[   (   R   Rk   (    (    s   test_Crystal.pyRP   Æ  s
    c         C   s9   t  j |  j ƒ } | j ƒ  |  j t | j ƒ d ƒ d  S(   Ni    (   Ri   Rj   Rh   t   clearR   R   R"   (   R   Rk   (    (    s   test_Crystal.pyt	   testClearÍ  s    
c         C   s)   |  j  |  j j ƒ  |  j j j ƒ  ƒ d  S(   N(   R   Rh   t   keysR"   (   R   (    (    s   test_Crystal.pyt   testKeysÒ  s    c         C   s)   |  j  |  j j ƒ  |  j j j ƒ  ƒ d  S(   N(   R   Rh   t   valuesR"   (   R   (    (    s   test_Crystal.pyt
   testValuesÕ  s    c         C   s)   |  j  |  j j ƒ  |  j j j ƒ  ƒ d  S(   N(   R   Rh   t   itemsR"   (   R   (    (    s   test_Crystal.pyt	   testItemsØ  s    c         C   s)   |  j  |  j j ƒ  |  j j j ƒ  ƒ d  S(   N(   R   Rh   Ro   R"   (   R   (    (    s   test_Crystal.pyRp   Û  s    c         C   sO   |  j  |  j j d ƒ ƒ |  j  |  j j d ƒ ƒ |  j |  j j d ƒ ƒ d  S(   NR   R   t   z(   R[   Rh   Rl   RZ   (   R   (    (    s   test_Crystal.pyt
   testHasKeyÞ  s    (   Re   Rf   R   R   R@   RD   RP   Rn   Rp   Rr   Rt   Rv   (    (    (    s   test_Crystal.pyRg   ­  s   											t   HeteroTestCasec           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   sc   |  j  t t d ƒ |  j  t t d ƒ |  j  t t d ƒ |  j  t t g  ƒ |  j  t t i  ƒ d  S(   Nt   abcdt    s   A@#(   t   assertRaisesR   R    (   R   (    (    s   test_Crystal.pyt   testInitæ  s
    c         C   sŒ   t  d ƒ } |  j t | ƒ d ƒ t  d ƒ } |  j t | ƒ d ƒ t  d ƒ } |  j t | ƒ d ƒ t  d ƒ } |  j t | ƒ d ƒ d  S(   Nt   brui   t   14wR   i   t   gai   (   R    R   R   (   R   R|   t   _14wR   R~   (    (    s   test_Crystal.pyR   í  s    c         C   sÒ   t  d ƒ } t  d ƒ } |  j | | ƒ |  j | t  d ƒ ƒ |  j | t  d ƒ ƒ |  j | t  d ƒ ƒ t  d ƒ } |  j | t  d ƒ ƒ |  j | t  d ƒ ƒ |  j | t  d ƒ ƒ |  j | t  d	 ƒ ƒ d  S(
   NR   R   t   u1t   xt   gnat   gNAt   GnAt   gnbt   na(   R    R   R   (   R   R   R€   R‚   (    (    s   test_Crystal.pyR   ÷  s    (   Re   Rf   R{   R   R   (    (    (    s   test_Crystal.pyRw   ä  s   		
t   __main__t	   verbosityi   t
   testRunner(   t   unittestRi   t   syst   Bio.CrystalR    R   R   R   t   TestCaseR   Rg   Rw   Re   t   TextTestRunnert   runnert   main(    (    (    s   test_Crystal.pyt   <module>   s   "ÿ  7!