ó
žšÐIc           @   sš   d  d l  Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l m 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   Nexust
   NexusTest1c           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s   t  d ƒ |  _ d  S(   Ns   Nexus/test_Nexus_input.nex(   t   opent   handle(   t   self(    (    s   test_Nexus.pyt   setUp   s    c         C   s   |  j  j ƒ  d  S(   N(   R   t   close(   R   (    (    s   test_Nexus.pyt   tearDown   s    c      1   C   sw  t  j  |  j ƒ } |  j t j j | j ƒ t j j d ƒ ƒ |  j | j d ƒ |  j | j d ƒ |  j | j	 d ƒ |  j | j
 t ƒ |  j | j d ƒ |  j | j d ƒ |  j | j d d d	 d
 d d d d d g	 ƒ |  j | j i
 d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d  6d! d" 6ƒ |  j | j i d d d d# g d$ 6d d d% d d& d# d' d( d d d) d* d+ d, d- d. d/ d0 d1 d2 d3 d d d4 d5 d6 d7 d8 d  d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI g. dJ 6d d d& d# d' d( d d d) d* d+ d, d- d. d/ d0 d1 d2 d3 d d d4 d5 d6 d7 d8 d  g dK 6d d d d% d d& d# d' g dL 6d( d d d) d* d+ d, d- g dM 6d. d/ d0 d1 d2 d3 d d g dN 6d d d d% d d& d# d' d( d d d) d* d+ d, d- d. d/ d0 d1 d2 d3 d d g dO 6d d d d' d d+ d. d1 d d5 d8 d: d= d@ dC dF dI g dP 6d d d d' d( d d+ d. d/ d0 d1 d2 d3 d d d5 d8 d: d= d@ dC dF dI g dQ 6d d% d# d d* d- d0 d3 d4 d7 d9 d< d? dB dE dH g dR 6d d d' d d+ d. d1 d d5 d8 d: d= d@ dC dF dI g dS 6d d& d( d) d, d/ d2 d d6 d  d; d> dA dD dG d" g dT 6d4 d5 d6 d7 d8 d  d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI d" g dU 6ƒ |  j | j i d	 d
 d d d d g dV 6d	 d
 d d d d g dW 6d	 d
 d d d d g dX 6d	 d
 d d d d g dY 6d d g dZ 6ƒ |  j t | j ƒ d ƒ |  j d[ | j k ƒ |  j d\ | j k ƒ |  j | j d[ i d d% d# d d* d- d0 d3 d4 d7 d9 d< d? dB dE dH g d 6d d d' d d+ d. d1 d d5 d8 d: d= d@ dC dF dI g d 6d d& d( d) d, d/ d2 d d6 d  d; d> dA dD dG d" g d 6ƒ |  j | j d\ i d d d d% d d& d# d' g d] 6d. d/ d0 d1 d2 d3 d d g d^ 6d( d d d) d* d+ d, d- g d_ 6ƒ |  j | j j ƒ  d` g ƒ |  j | j d` i d	 d
 d g da 6d d d d d d g db 6ƒ t j ƒ  } | j | dc d d g dd | j | j d$ ƒ ƒ| j d ƒ t  j  | ƒ } |  j t j j | j ƒ t j j | j ƒ ƒ |  j | j d' ƒ |  j | j d ƒ |  j | j	 d ƒ |  j | j
 t ƒ |  j | j d ƒ |  j | j d ƒ |  j | j d d	 d
 d d d d g ƒ |  j | j i d d 6d d 6d d 6ƒ |  j | j i
 d d d d% g d$ 6d d d% g dJ 6d d d% g dK 6d d d d% g dL 6d d d d% g dO 6d d g dP 6d d g dQ 6d d% g dR 6d g dS 6d g dT 6ƒ |  j | j i d	 d
 d d d g dV 6d	 d
 d d d g dW 6d	 d
 d d d g dX 6d	 d
 d d d g dY 6d g dZ 6ƒ |  j t | j ƒ d ƒ |  j d[ | j k ƒ |  j d\ | j k ƒ |  j | j d[ i d d% g d 6d g d 6d g d 6ƒ |  j | j d\ i d d d d% g d] 6ƒ |  j | j j ƒ  d` g ƒ |  j | j d` i d	 d
 d g da 6d d d d g db 6ƒ t j ƒ  } | j | dc de g dd t d% dC d ƒ ƒ| j d ƒ t  j  | ƒ } |  j t j j | j ƒ t j j | j ƒ ƒ |  j | j d ƒ |  j | j dA ƒ |  j | j	 d ƒ |  j | j
 t ƒ |  j | j d ƒ |  j | j d ƒ |  j | j d d d	 d
 d d d d d g	 ƒ |  j | j i	 d d 6d d 6d d 6d d% 6d d' 6d d( 6d d/ 6d d 6d! d@ 6ƒ |  j | j i d d d% d& g d$ 6d d d% d d& d# d' d( d d d) d* d+ d, d- d. d/ d0 d1 d2 d3 d d d4 d5 d6 d7 d8 d  d9 d: d; d< d= d> d? g$ dJ 6d d% d d& d# d' d( d d d) d* d+ d, d- d. d/ d0 d1 d2 d3 d g dK 6d d d d% d d& g dL 6d# d' d( d d d) g dM 6d* d+ d, d- d. d/ g dN 6d d d d% d d& d# d' d( d d d) d* d+ d, d- d. d/ g dO 6d d d% d( d d* d/ d1 d3 d6 d8 d9 d< d? g dP 6d d d% d# d( d d* d+ d, d- d. d/ d1 d3 d6 d8 d9 d< d? g dQ 6d d& d' d d, d. d0 d d5 d7 d; d> g dR 6d d% d( d d* d/ d1 d3 d6 d8 d9 d< d? g dS 6d d d# d) d+ d- d2 d d4 d  d: d= d@ g dT 6d0 d1 d2 d3 d d d4 d5 d6 d7 d8 d  d9 d: d; d< d= d> d? d@ g dU 6ƒ |  j | j i d	 d
 d d d d g dV 6d	 d
 d d d d g dW 6d	 d
 d d d d g dX 6d	 d
 d d d d g dY 6d d g dZ 6ƒ |  j t | j ƒ d ƒ |  j d[ | j k ƒ |  j d\ | j k ƒ |  j | j d[ i d d& d' d d, d. d0 d d5 d7 d; d> g d 6d d% d( d d* d/ d1 d3 d6 d8 d9 d< d? g d 6d d d# d) d+ d- d2 d d4 d  d: d= d@ g d 6ƒ |  j | j d\ i d d d d% d d& g d] 6d* d+ d, d- d. d/ g d^ 6d# d' d( d d d) g d_ 6ƒ |  j | j j ƒ  d` g ƒ |  j | j d` i d	 d
 d g da 6d d d d d d g db 6ƒ |  j | j df dg ƒ dh ƒ di S(j   s   Test Nexus modules   Nexus/test_Nexus_input.nexi	   i0   t   dnat   ?t   -t   t1s   t2 the names   isn'that [a] strange name?s#   one should be punished, for (that)!t   t5t   t6t   t7t   t8t   t9t   ai    t   bi   t   ci   t   fi   t   At   Bi
   t   xi   t   yi   s   1,2,3 can't decide for a name?!i   t   finali/   i   t   bigi   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i    i!   i"   i#   i$   i%   i&   i'   i(   i)   i*   i+   i,   i-   i.   t   bigchunkt   bynamet   c1t   c2t   c3t	   firsthalft   mixt   muxt   pos1t   pos2t   pos3t
   secondhalft   normalt	   referencet   tbyname1t   tbyname2t   tbyname3t   codonst   partt   onet   threet   twot   taxpartt   badnamest	   goodnamest   deletet   excludet   t2_the_namet   namet   matrix_tests[  usertype matrix_test stepmatrix=5
        A        C        G        T        -
[A]     .       2.40     2.57     2.43     2.43     
[C]    2.40      .       2.28     2.12     2.14     
[G]    2.57     2.28      .       2.31     2.31     
[T]    2.43     2.12     2.31      .       2.14     
[-]    2.43     2.14     2.31     2.14      .       
;
N(    R    R   t   assertEqualt   ost   patht   normpatht   filenamet   ntaxt   nchart   datatypet
   interleavet   Truet   missingt   gapt	   taxlabelst
   charlabelst   charsetst   taxsetst   lent   charpartitionst   assert_t   taxpartitionst   keyst   tempfilet   NamedTemporaryFilet   write_nexus_datat   invertt   seekR7   t   Falset   ranget   weighted_stepmatrix(   R   t   nt   f1t   nf1t   f2t   nf2(    (    s   test_Nexus.pyt   test_NexusTest1   sê   
‘XO:L777S



:7;"#

("




 
*
	
sF=1@+..G



..2

c         C   s4  t  j  |  j ƒ } | j d } | j d } | j d d g ƒ |  j t | ƒ d ƒ |  j | j d d d d g ƒ d	 ƒ |  j | j d d g ƒ d
 ƒ | j d | j d ƒ ƒ t	 j
 } z9 t j ƒ  t	 _
 | j ƒ  t	 j
 j ƒ  t	 j
 j ƒ  } Wd | t	 _
 X|  j | d ƒ |  j | j | d d ƒg  ƒ d S(   s   Test Tree module.i   R   R   s   tree tree1 = (((((('one should be punished, for (that)!','isn''that [a] strange name?'),'t2 the name'),t8,t9),t6),t7),(t5,t1));R   R   R   R   iÿÿÿÿi   t	   parent_idNså    #                            taxon            prev            succ    brlen blen (sum)  support              comment
  1    'isn''that [a] strange name?'               2              []    100.0     119.84     10.0                    -
  2                                -               4          [3, 1]      0.4      19.84      0.3                    -
  3 'one should be punished, for (that)!'               2              []      0.5      20.34        -                    -
  4                                -               6          [2, 5]      4.0      19.44      3.0                    -
  5                    't2 the name'               4              []      0.3      19.74        -                    -
  6                                -               9       [4, 7, 8]      2.0      15.44      1.0                    -
  7                               t8               6              []      1.2      16.64        -                    -
  8                               t9               6        [17, 18]      3.4      18.84        -                    -
  9                                -              11         [6, 10]     0.44      13.44     33.0                    -
 10                               t6               9              []      1.0      14.44        -                    -
 11                                -              16         [9, 12]     13.0       13.0     12.0                    -
 12                               t7              11              []     99.9      112.9        -                    -
 13                                -              16        [14, 15]      0.0        0.0      0.0                    -
 14                               t5              13              []     99.0       99.0        -                    -
 15                               t1              13              []     0.98       0.98        -                    -
 16                                -            None        [11, 13]      0.0        0.0        -                    -
 17                              t90               8              []      1.0      19.84        -                    -
 18                              t91               8              []      1.0      19.84        -                    -

Root:  16
t	   thresholdg333333Ó?(   R    R   t   treest   root_with_outgroupR9   t   strt   is_monophyletict   splitt   search_taxont   syst   stdoutt	   cStringIOt   StringIOt   displayt   resett   readt   is_compatible(   R   RV   t   t3t   t2Re   t   output(    (    s   test_Nexus.pyt   test_TreeTest1'  s$    %	

	(   t   __name__t
   __module__R   R   R[   Ro   (    (    (    s   test_Nexus.pyR   
   s
   			ÿ t   __main__t	   verbosityi   t
   testRunner(   t   os.pathR:   t   unittestRN   Rf   Rd   t	   Bio.NexusR    t   TestCaseR   Rp   t   TextTestRunnert   runnert   main(    (    (    s   test_Nexus.pyt   <module>   s   ÿ J