
Y_S5                 @   s   d  d l  Z  d  d l m Z d  d l Td  d l m Z d  d l TGd d   d e  j  Z Gd d   d e  j  Z	 Gd	 d
   d
 e  j  Z
 e d k r e  j   n  d S)    N)seq_io)*)StringIOc               @   s   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 d
   Z d d   Z d d   Z	 d d   Z
 d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d S)test_alphabetc             C   s6   |  j  t t d  |  j  t t d  t d  } d  S)NalphabetZalph alphbet)assertRaises
ValueErrorAlphabet)selfa1 r   I/Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pytest_create_alphabet&   s    z"test_alphabet.test_create_alphabetc             C   s=   t  d  } |  j | j d   |  j | j d   d  S)Nr   ZalphbetX)r
   
assertTrue
alphabetic)r   ar   r   r   test_alphabet_alphabetic/   s    z&test_alphabet.test_alphabet_alphabeticc             C   se   t  } x3 t |  D]% \ } } |  j | j |  |  q Wt d  } |  j d | j d   d  S)Nalph   p)generic_alphabet	enumerateassertEqualordr
   )r   r   icr   r   r   test_alphabet_ord4   s
    ztest_alphabet.test_alphabet_ordc             C   so   t  } x= t |  D]/ \ } } |  j t | j |   | d  q Wt d  } |  j d | j d   d  S)N    r   h   )r   r   r   r   chrr
   )r   r   r   r   r   r   r   test_alphabet_chr<   s
    'ztest_alphabet.test_alphabet_chrc             C   so   t  d  } |  j d | j d  d  t } | j |  } x* t |  D] \ } } |  j | |  qK Wd  S)Nr   r   Zalphalph   )r
   r   ordsr   r   )r   r   or   r   r   r   r   test_alphabet_ordsE   s    z test_alphabet.test_alphabet_ordsc             C   s2   t  d  } |  j t d |  | j d   d  S)Nr   Zpplar      r   )r   r   r'   r   )r
   r   Seqchrs)r   r   r   r   r   test_alphabet_chrsN   s    z test_alphabet.test_alphabet_chrsc             C   s    t  d   } |  j | t  d  S)N)r
   r   r   )r   r   r   r   r   	test_noneR   s    ztest_alphabet.test_nonec             C   s/   t  d  } t  |  } |  j | | k  d S)zK If we pass an alphabet to the constuctor, it's passed 
        right back kjdahfN)r
   r   )r   r   a2r   r   r   test_create_from_alphabetV   s    z'test_alphabet.test_create_from_alphabetc             C   s(   t  d  } t |  } t |  } d  S)Nr,   )r
   reprstr)r   r   rsr   r   r   	test_repr]   s    ztest_alphabet.test_reprc             C   s    |  j  t t d   d  d  S)Nr,   )r   r0   r
   )r   r   r   r   test_strb   s    ztest_alphabet.test_strc             C   s    |  j  t d  j   d  d  S)Nr,   )r   r
   letters)r   r   r   r   test_letterse   s    ztest_alphabet.test_lettersc             C   s;   t  d  } d } | j |  } |  j t |  d  d  S)NABCDEZaBbcZABBC)r
   	normalizer   r0   )r   r   r2   nr   r   r   test_normalizeh   s    ztest_alphabet.test_normalizec             C   sx   t  d d  } t d |  } | j d  d k s9 t  x8 | D]0 \ } } | j |  | j |  k s@ t  q@ Wd  S)NZ12345ZABCEDr7   Ar   )zipr
   r   AssertionError)r   altalphar   r   r   r   r   test_altn   s
    ztest_alphabet.test_altc             C   s  t  j t d   } | t k s' t  t d  } t d  } t d  } t d  } t j |  t f t j |  t f t j |  t f t j |  t f f } x/ | D]' } |  j	 t  j | d  | d  q W| j
   | j
   | j
   | j
   d  S)NARNDCQEGHILKMFPSTWYVXzcap.fazcox2.msfzRv3829c.fastazchain_B.fastar   r'   )r
   whichr(   unambiguous_protein_alphabetr=   testdata_streamr   readunambiguous_dna_alphabetr   close)r   r   f1f2Zf3Zf4teststr   r   r   test_which_alphabetu   s     %


z!test_alphabet.test_which_alphabetN)__name__
__module____qualname__r   r   r   r"   r&   r*   r+   r.   r3   r4   r6   r:   r@   rL   r   r   r   r   r   $   s   			r   c               @   s  e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 d
   Z d d   Z d d   Z	 d d   Z
 d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d    Z d! d"   Z d# d$   Z d% d&   Z d' d(   Z d) d*   Z d+ S),test_seqc             C   s   |  j  t d d   |  j t t d d  d } x! | D] } |  j  | t k  q9 W|  j  t | t   |  j t t d t  d  S)Nr   r   znot alphabeticz|Any printable Ascii character `1234567890-=~!@#$%^&*()_+{}|[]\:;'<>?,./QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm zNot zero.  )r   r(   r   r	   r   )r   r   lr   r   r   test_create_seq   s    ztest_seq.test_create_seqc             C   sa   t  d t  } t  d t  } |  j t t  d t  t  d t  } |  j t | d  d  d  S)NZ#dskjjfskdjbfKJJSJKSKJDjk123u768erbmrA   Z1234AGTCAGCTACGACGCGCr'   G)r(   r   protein_alphabetr   r	   dna_alphabetr   r0   )r   r2   r   r   r   test_std_alphabets   s
    ztest_seq.test_std_alphabetsc             C   sM   t  d  } t d |  } |  j t | j    d d d d d d g  d  S)NABCZABCCBAr   r'   r   )r
   r(   r   listr$   )r   r   r2   r   r   r   	test_ords   s    ztest_seq.test_ordsc             C   s]   t  d t  } | j   } |  j t t  t |   |  j t |  d d d d g  d  S)NrS   r#         r   )r(   rF   tallyr   lenrY   )r   r2   r   r   r   r   
test_tally   s    ztest_seq.test_tallyc             C   sZ   t  d t  } | j t d   } |  j d t |   |  j t |  d d g  d  S)NrS   ACr   r#   r[   )r(   rV   r]   r
   r   r^   rY   )r   r2   r   r   r   r   test_tally_nonalphabetic   s    z!test_seq.test_tally_nonalphabeticc             C   s   t  d t  } t | j d t   } |  j t |  t |  d  |  j | d d d d d d d d	 d
 d d d
 d d d d g  |  j t | j t |  t   g   |  j t | j t |  d t   d g  d  S)NZAGTCAGCTACGACGcgcxr   AGGTZTCCAZGCCTZTAr`   CGZGAr'   rS   )r(   rV   rY   wordsrF   r   r^   )r   r2   wr   r   r   
test_words   s     @(ztest_seq.test_wordsc             C   sH   t  d t  } | j d  } t t |    d } |  j | d  d  S)NrS   r   r'   r    )
r   r   r'   r    r'   r'   r    r'   r'   r'   )r(   rF   
word_countrY   r<   r   )r   r2   Zwccountr   r   r   test_words2   s    ztest_seq.test_words2c             C   s9   t  d t  } | d d  } |  j | j | j  d  S)NrS   r   r#   )r(   rV   r   r   )r   r2   slicer   r   r   test_getslice   s    ztest_seq.test_getslicec             C   sa   d } t  | t d d d d } |  j | j d  |  j | j d  |  j | t |   d  S)NZ%ACGTURYSWKMBDHVNACGTURYSWKMBDHVNAAAAAnameZIDdescriptionZDESCRIPTION)r(   nucleic_alphabetr   ro   rp   r0   )r   r2   r   r   r   r   test_create_annotated   s    ztest_seq.test_create_annotatedc             C   s   t  d t  } t  d t  } | | } |  j | j t  |  j | t  d t   d } | | } | | } |  j | j | j  |  j | |  d  S)NAAAATTTTZAAAATTTTZAA)r(   rV   r   r   )r   s1s2s3s4s5Zs6r   r   r   test_add   s    


ztest_seq.test_addc             C   sh   t  d t  } t  d t  } d } t  d t  } | j | | | g  } |  j | t  d t   d  S)Nrs   rt   GGGG ZAAAATTTTGGGG)r(   rV   joinr   )r   ru   rv   rw   s0jr   r   r   	test_join   s    ztest_seq.test_joinc             C   s   t  d t  } t |  } d  S)Nrs   )r(   rV   r/   )r   ru   r1   r   r   r   r3      s    ztest_seq.test_reprc             C   sH   t  d t  } |  j t |  d  |  j t t  d t   d  d  S)NZAGCTAZAgcTA)r(   rV   r   r0   )r   ru   r   r   r   r4      s    ztest_seq.test_strc             C   s#   |  j  t d t  j   d  d  S)NZAgcTAAAA)r   r(   rV   tostring)r   r   r   r   test_tostring   s    ztest_seq.test_tostringc             C   sN   t  d t  } |  j | | j   j    |  j | j   t  d t   d  S)NACGTZTGCA)r(   rV   r   reverse)r   r2   r   r   r   test_reverse   s    ztest_seq.test_reversec             C   s2   t  d  } | j   } |  j t |  d  d  S)NZ!GCCATTGTAATGGGCCGCTGAAAGGGTGCCCGAzAIVMGR*KGAR)dna	translater   r0   )r   r2   r   r   r   r   test_translate   s    ztest_seq.test_translatec             C   sT   t  d  } | j   } |  j | t  d   |  j t  d  j   t  d   d  S)NZGGGGaaaaaaaatttatatatZatatataaattttttttCCCCACGTRYSWKMBDHVNZNBDHVKMWSRYACGT)r   reverse_complementr   )r   r2   rcr   r   r   test_reverse_complement  s
    z test_seq.test_reverse_complementc             C   sZ   t  d t  j   } |  j t |  d  t  d t  j   } |  j t |  d  d  S)NzT-TZTTzT-~---T...~~~--)r(   rV   ungapr   r0   )r   r2   r   r   r   
test_ungap  s    ztest_seq.test_ungapc             C   s,   t  d  j   } |  j t |  d  d  S)NZ	AAaaaaAAAZ	AAXXXXAAA)r   maskr   r0   )r   r2   r   r   r   	test_mask  s    ztest_seq.test_maskc             C   sL   t  d  } t d  } t d  } t d  } t d  } t d  } d  S)NzgGGGGG-PPPPPr   rK   Zactgtazacgtrysw-kmb-dhvnZACUUUUU)proteinr   rna)r   Zsproteind1d2d3Zd4Zsrnar   r   r   test_shortcuts  s    ztest_seq.test_shortcutsc             C   s2   t  d  } | j   j   } |  j | |  d  S)Nr   )r   lowerupperr   )r   ru   rv   r   r   r   test_casechange!  s    ztest_seq.test_casechangeN)rM   rN   rO   rR   rW   rZ   r_   ra   ri   rl   rn   rr   rz   r   r3   r4   r   r   r   r   r   r   r   r   r   r   r   r   rP      s*   		
		rP   c               @   sp   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 d
   Z d d   Z d d   Z	 d d   Z
 d S)test_seqlistc             C   s\   t  d t  } t  d t  } t  d t  } t | | | g  } |  j t |  d  d  S)NACGTURYBDHVNACGTURYSWKMBDHVN ACGTURYSWKMBDHVNACGTURYSWKMBDHVNACGTURSWKMBDHVNACGTURKMBDHVNr    )r(   rq   SeqListr   r^   )r   r~   ru   rv   seqsr   r   r   test_create+  s
    ztest_seqlist.test_createc             C   s   t  d t  } t  d t  } t  d t  } t | | | g d t d d d d } |  j | j d  |  j | j d  |  j | j t  d  S)	Nr   r   r   r   ro   Zalsdfrp   r   )r(   rq   r   r   ro   rp   r   )r   r~   ru   rv   r   r   r   r   rr   4  s    z"test_seqlist.test_create_annotatedc       	      C   s   t  d t  } t  d t  } t  d t  } t | | | g t  } | j   } | j t  } t | | | g  } | j d t d   } |  j t | j  d  S)Nr   ZACGTURYSDHVNACGTURYSWKMBDHVNr   r   rX   )r(   rq   r   r$   r
   r   r	   )	r   r~   ru   rv   r   r   r-   Zseqs3a3r   r   r   rZ   @  s    
ztest_seqlist.test_ordsc             C   sE  t  d  } t d |  } t d |  } t d |  } t d |  } t | | | | g |  } | j   } |  j t | d  d d d d g  |  j t | d  d	 d d d g  |  j t | d
  d	 d d d g  |  j t | d	  d d d d g  |  j t | d  d d d d g  |  j | d d  d  S)NABCDZABCDDZAAAADZAAABDZAAACDr   r#   r'   r    r   D)r#   r   )r
   r(   r   profiler   rY   )r   r   r~   ru   rv   rw   r   r]   r   r   r   test_profileX  s    &&&&&ztest_seqlist.test_profilec             C   s   t  d t  } t  d t  } t  d t  } t | | | g t  } | j   } | d d d d d d d d d d d d d d d d d g k s t  d  S)	NZACTTTZACCCCr{   r   r\   r#   r    r   )r(   rq   r   r]   r=   )r   r~   ru   rv   r   countsr   r   r   r_   l  s    ztest_seqlist.test_tallyc             C   s   t  d t  } t  d t  } t  d t  } t   } | j |  | j | | f  |  j t |  d  |  j t |  t  d  S)Nr   r   r   r    )r(   rq   r   appendextendr   r^   type)r   r~   ru   rv   r   r   r   r   test_create_emptyx  s    	ztest_seqlist.test_create_emptyc             C   sR   t  d t  } t  d t  } t  d t  } t | | | g  } t |  } d  S)Nr   r   r   )r(   rq   r   r/   )r   r~   ru   rv   r   r1   r   r   r   r3     s
    ztest_seqlist.test_reprc             C   sR   t  d t  } t  d t  } t  d t  } t | | | g  } t |  } d  S)Nr   r   r   )r(   rq   r   r0   )r   r~   ru   rv   r   r2   r   r   r   r4     s
    ztest_seqlist.test_strN)rM   rN   rO   r   rr   rZ   r   r_   r   r3   r4   r   r   r   r   r   (  s   	r   __main__)unittestcorebior   corebio.seqZcorebio._py3kr   Ztest_corebioTestCaser   rP   r   rM   mainr   r   r   r   <module>   s   

im