ó
¨’Ic           @   s©   d  d l  Z  d  d l m Z d  d l m Z m Z d  d l m Z d  d l m Z d „  Z	 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   CAPS(   t   EcoRIt   AluI(   t   Alphabet(   t	   Alignmentc         C   sQ   t  | ƒ } d } x8 |  D]0 } d t | ƒ } | j | | ƒ | d 7} q W| S(   s3   Create an Alignment object from a list of sequencesi    t   sequencei   (   R   t   strt   add_sequence(   t	   sequencest   alphabett   alignt   counterR   t   name(    (    s   test_CAPS.pyt   createAlignment   s    t   TestCAPSc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   sÄ   t  g } d d g } t | t j ƒ } t j | | ƒ } |  j t | j ƒ d ƒ |  j | j d j	 t  ƒ |  j | j d j
 d ƒ |  j | j d j d g ƒ |  j | j d j d g ƒ d  S(   Nt   gaattct   gaactci   i    (   R   R   R   t   generic_dnaR    t   CAPSMapt   assertEqualt   lent   dcutst   enzymet   startt   cuts_int
   blocked_in(   t   selft   enzymest	   alignmentR
   t   map(    (    s   test_CAPS.pyt   test_trivial   s    		c         C   s>  d d d g } t  t g } t | t j ƒ } t j | | ƒ } |  j t | j	 ƒ d ƒ |  j | j	 d j
 t  ƒ |  j | j	 d j d ƒ |  j | j	 d j d g ƒ |  j | j	 d j d d g ƒ |  j | j	 d j
 t ƒ |  j | j	 d j d ƒ |  j | j	 d j d d g ƒ |  j | j	 d j d g ƒ d  S(   Ns1  AAAagaattcTAGATATACCAAACCAGAGAAAACAAATACATAATCGGAGAAATACAGAT
AGAGAGCGAGAGAGATCGACGGCGAAGCTCTTTACCCGGAAACCATTGAAATCGGACGGT
TTAGTGAAAATGGAGGATCAAGTagAtTTTGGGTTCCGTCCGAACGACGAGGAGCTCGTT
GGTCACTATCTCCGTAACAAAATCGAAGGAAACACTAGCCGCGACGTTGAAGTAGCCATC
AGCGAGGTCAACATCTGTAGCTACGATCCTTGGAACTTGCGCTGTAAGTTCCGAATTTTC
s1  AAAagaTttcTAGATATACCAAACCAGAGAAAACAAATACATAATCGGAGAAATACAGAT
AGAGAGCGAGAGAGATCGACGGCGAAGCTCTTTACCCGGAAACCATTGAAATCGGACGGT
TTAGTGAAAATGGAGGATCAAGTagctTTTGGGTTCCGTCCGAACGACGAGGAGCTCGTT
GGTCACTATCTCCGTAACAAAATCGAAGGAAACACTAGCCGCGACGTTGAAGTAGCCATC
AGCGAGGTCAACATCTGTAGCTACGATCCTTGGAACTTGCGCTGTAAGTTCCGAATTTTC
i   i    i   i   i   (   R   R   R   R   R   R    R   R   R   R   R   R   R   R   (   R   R   R   R
   R   (    (    s   test_CAPS.pyt   test$   s    	  c         C   sM   d d g } g  } t  | t j ƒ } t j | | ƒ } |  j | j g  ƒ d  S(   Nt   aaaaaaaaaaaaaaaaaaaa(   R   R   t   generic_nucleotideR    R   R   R   (   R   R   R   R
   R   (    (    s   test_CAPS.pyt
   testNoCAPSK   s    	c         C   s>   d d d g } t  | t j ƒ } |  j t j t j | ƒ d  S(   Nt   aaaaaaaaaaaaaat   aaaaaaaa(   R   R   R!   t   assertRaisesR    t!   AlignmentHasDifferentLengthsErrorR   (   R   R   R
   (    (    s   test_CAPS.pyt   test_unevenV   s    	(   t   __name__t
   __module__R   R   R"   R'   (    (    (    s   test_CAPS.pyR      s   		'	t   __main__t	   verbosityi   t
   testRunner(   t   unittestt   BioR    t   Bio.RestrictionR   R   R   t   Bio.Align.GenericR   R   t   TestCaseR   R(   t   TextTestRunnert   runnert   main(    (    (    s   test_CAPS.pyt   <module>   s   	
P