ó
W™xTc           @   s×  d  d l  m Z d  d l m Z d  d l m Z d  d l Z d e j f d „  ƒ  YZ d e j f d „  ƒ  YZ	 d	 e j f d
 „  ƒ  YZ
 d e j f d „  ƒ  YZ d e j f d „  ƒ  YZ d e j f d „  ƒ  YZ d e j f d „  ƒ  YZ e j ƒ  j e ƒ Z e j ƒ  j e	 ƒ Z e j ƒ  j e
 ƒ Z e j ƒ  j e ƒ Z e j ƒ  j e ƒ Z e j ƒ  j e ƒ Z e j ƒ  j e ƒ Z e j e e e e e e e g ƒ Z d „  Z e d k rÓe j d d ƒ j e ƒ n  d S(   iÿÿÿÿ(   t   division(   t
   suffixtree(   t   singleNt   TestWordc           B   s   e  Z d  „  Z RS(   c         C   s  t  j ƒ  } | j ƒ  } |  j t | ƒ d ƒ |  j | ƒ  d ƒ |  j t | j d | ƒ  ƒ ƒ g  ƒ t ƒ  } t ƒ  } | j | ƒ |  j t | ƒ d ƒ |  j | ƒ  d ƒ |  j | d | ƒ |  j t | ƒ | g ƒ | j | ƒ |  j t | ƒ d ƒ |  j | ƒ  d ƒ |  j | d | ƒ |  j | d | ƒ |  j t | ƒ | | g ƒ |  j t | j d d ƒ ƒ g  ƒ |  j t | j d d ƒ ƒ | g ƒ |  j t | j d d ƒ ƒ | | g ƒ |  j t | j d d ƒ ƒ g  ƒ |  j t | j d d ƒ ƒ | g ƒ d  S(   Ni    i   i   (	   R   t   wordt   length_descriptort   assertEqualt   lent   listt	   substringt   objectt   append(   t   selfR   t   ldt   c1t   c2(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt   test_single_word
   s.    %		"%("(   t   __name__t
   __module__R   (    (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyR      s   t   TestEdgec           B   sG   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sp   t  j j ƒ  |  _ t  j j d d d d ƒ |  _ t  j ƒ  |  _ t  j j d d d |  j j ƒ  d d ƒ |  _ d  S(	   Nt   starti   t   stopi   i   t   lengtht   labeli   (   R   t   edget   roott   branchR   t   leafR   (   R   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt   setUp,   s    c         C   sw  |  j  |  j j d ƒ |  j t t |  j d d ƒ |  j  |  j j d ƒ |  j t t |  j d ƒ |  j t t |  j d ƒ |  j t t |  j d |  j ƒ |  j t t |  j d ƒ |  j t t |  j d |  j ƒ |  j	 |  j j
 ƒ  ƒ |  j |  j j ƒ  ƒ |  j	 |  j j ƒ  ƒ |  j  |  j j ƒ  g  ƒ |  j d |  j k ƒ |  j	 d |  j k ƒ |  j t |  j j d ƒ |  j |  j d <|  j |  j d <|  j |  j d <|  j |  j j ƒ  ƒ |  j  t |  j j ƒ  ƒ t d d g ƒ ƒ |  j  t |  j j ƒ  ƒ t |  j |  j g ƒ ƒ |  j	 d |  j k ƒ |  j	 d |  j k ƒ |  j  |  j d |  j ƒ |  j  |  j d |  j ƒ d  S(   Ni    R   i   R   t   parentt   suffixi   (   R   R   R   t   assertRaisest   RuntimeErrort   setattrR   t   getattrR   t
   assertTruet   is_roott   assertFalset   is_leaft   is_emptyt   keyst   KeyErrort   __getitem__R   t   sett   values(   R   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt	   test_root4   s2    +1c         C   sm  t  j j |  j ƒ } |  j |  j | ƒ |  j t |  j ƒ t | ƒ ƒ |  j t  j j ƒ  | ƒ |  j | j d ƒ |  j | j	 d ƒ |  j
 t t | d ƒ |  j
 t t | d ƒ |  j
 t t | d ƒ |  j | j ƒ  ƒ |  j | j ƒ  ƒ |  j | j ƒ  ƒ |  j | j ƒ  g  ƒ |  j | j ƒ  g  ƒ |  j d | k ƒ |  j d | k ƒ |  j
 t | j d ƒ d  S(   Ni    R   R   R   i   (   R   t
   const_edget	   from_edgeR   R   t   hasht   assertNotEqualR   R   R   R   R    R"   R#   R$   R%   R&   R'   R(   R,   R)   R*   (   R   t   cr(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt   test_const_rootT   s"    c         C   sÇ  |  j  |  j j d ƒ d |  j _ |  j  |  j j d ƒ |  j  |  j j d ƒ |  j t t |  j d ƒ |  j  |  j j d  ƒ |  j	 |  j _ |  j
 t |  j j t j ƒ ƒ |  j  |  j j |  j	 ƒ |  j  |  j j d  ƒ |  j	 |  j _ |  j
 t |  j j t j ƒ ƒ |  j  |  j j |  j	 ƒ |  j |  j j ƒ  ƒ |  j |  j j ƒ  ƒ |  j
 |  j j ƒ  ƒ |  j  |  j j ƒ  g  ƒ |  j d |  j k ƒ |  j
 d |  j k ƒ |  j t |  j j d ƒ |  j	 |  j d <|  j |  j d <|  j	 |  j d <|  j |  j j ƒ  ƒ |  j  t |  j j ƒ  ƒ t d d g ƒ ƒ |  j  t |  j j ƒ  ƒ t |  j	 |  j g ƒ ƒ |  j
 d |  j k ƒ |  j
 d |  j k ƒ |  j  |  j d |  j ƒ |  j  |  j d |  j	 ƒ d  S(   Ni   i   i   R   (   R   R   R   R   R   R    R"   R   t   NoneR   R#   t
   isinstanceR   R   R   R%   R$   R&   R'   R(   R)   R*   R   R+   R,   (   R   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt   test_branchm   s<    +1c         C   sõ  t  j j |  j ƒ } |  j |  j | ƒ |  j t |  j ƒ t | ƒ ƒ |  j t  j j d d d d ƒ | ƒ |  j | j d ƒ |  j | j	 d ƒ |  j
 t t | d ƒ |  j | j d  ƒ |  j |  j _ |  j t | j t  j ƒ ƒ |  j | j |  j ƒ |  j | j d  ƒ |  j |  j _ |  j t | j t  j ƒ ƒ |  j | j |  j ƒ |  j | j ƒ  ƒ |  j | j ƒ  ƒ |  j | j ƒ  ƒ |  j | j ƒ  g  ƒ |  j | j ƒ  g  ƒ |  j d | k ƒ |  j d | k ƒ |  j
 t | j d ƒ d  S(   NR   i   R   i   R   (   R   R.   R/   R   R   R0   R1   R   R   R   R   R    R"   R   R4   R   R#   R5   R   R%   R$   R&   R'   R(   R,   R)   R*   (   R   t   cb(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt   test_const_branch”   s.    %c         C   s   |  j  |  j j d ƒ d |  j _ |  j  |  j j d ƒ |  j j ƒ  } |  j  |  j j | ƒ  ƒ |  j j d ƒ |  j j d ƒ |  j  |  j j | ƒ  ƒ |  j  |  j j d ƒ |  j  |  j j d  ƒ |  j
 |  j _ |  j t |  j j t j ƒ ƒ |  j  |  j j |  j
 ƒ |  j t t |  j d ƒ |  j t t |  j d |  j ƒ |  j |  j j ƒ  ƒ |  j |  j j ƒ  ƒ |  j |  j j ƒ  ƒ |  j  |  j j ƒ  g  ƒ |  j  |  j j ƒ  g  ƒ |  j d |  j k ƒ |  j d |  j k ƒ |  j t |  j j d ƒ |  j t |  j j d |  j
 ƒ d  S(   Ni   i   i   i   i   R   (   R   R   R   R   R   R   R   R   R   R4   R   R#   R5   R   R   R   R    R"   R!   R   R%   R$   R&   R'   R(   R,   R*   t   __setitem__(   R   R   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt	   test_leafµ   s0    c         C   s  t  j j |  j ƒ } |  j |  j | ƒ |  j t |  j ƒ t | ƒ ƒ |  j t  j j d d d |  j j	 ƒ  d d ƒ | ƒ |  j | j
 d ƒ |  j j	 ƒ  } |  j | j | ƒ  ƒ |  j j d ƒ |  j j d ƒ |  j | j | ƒ  ƒ |  j | j d ƒ |  j | j d  ƒ |  j |  j _ |  j t | j t  j ƒ ƒ |  j | j |  j ƒ |  j t t | d ƒ |  j | j ƒ  ƒ |  j | j ƒ  ƒ |  j | j ƒ  ƒ |  j | j ƒ  g  ƒ |  j | j ƒ  g  ƒ |  j d | k ƒ |  j d | k ƒ |  j t | j d ƒ d  S(	   NR   i   R   R   i   i   i   R   (   R   R.   R/   R   R   R0   R1   R   R   R   R   R   R   R   R   R4   R   R#   R5   R   R    R"   R%   R$   R&   R'   R(   R,   R)   R*   (   R   t   clR   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt   test_const_leafÖ   s4    '(	   R   R   R   R-   R3   R6   R8   R:   R<   (    (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyR   *   s   		 		'	!	!t   TestPreOrderc           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 RS(   c         C   s)  t  j j ƒ  |  _ t  j ƒ  |  _ |  j j ƒ  } i	 t  j j d d d d ƒ d 6t  j j d d d d ƒ d 6t  j j d d d	 | d
 d ƒ d 6t  j j d d d d ƒ d 6t  j j d d d	 | d
 d ƒ d 6t  j j d d d	 | d
 d ƒ d 6t  j j d d d	 | d
 d ƒ d 6t  j j d d d	 | d
 d ƒ d 6t  j j d d d	 | d
 d ƒ d 6|  _ |  j d |  j d <|  j d |  j d <|  j d |  j d <|  j d |  j d d <|  j d |  j d d <|  j d |  j d d <|  j d |  j d d <|  j d |  j d d <|  j d |  j d d <d  S(   NR   i    R   i   t   r_b1i   t   r_b2i   R   R   i   t   r_l1i   t   r_b1_b1i   t   r_b1_l1i   t
   r_b1_b1_l1i	   t
   r_b1_b1_l2i
   t   r_b2_l1i   t   r_b2_l2(   R   R   R   R   R   R   R   t
   edge_named(   R   R   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyR   þ   s,    """""(c         C   s©   t  j j ƒ  } t | j ƒ  ƒ } |  j | | g ƒ |  j t | d t  j ƒ ƒ t  j j	 | ƒ } t | j ƒ  ƒ } |  j | | g ƒ |  j t | d t  j ƒ ƒ d  S(   Ni    (
   R   R   R   R   t   preorder_iterationR   R#   R5   R.   R/   (   R   R   t   resR2   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt   test_single_root  s    c         C   sµ   t  j j d d d d ƒ } t | j ƒ  ƒ } |  j | | g ƒ |  j t | d t  j ƒ ƒ t  j j	 | ƒ } t | j ƒ  ƒ } |  j | | g ƒ |  j t | d t  j ƒ ƒ d  S(   NR   i    R   i   (
   R   R   R   R   RH   R   R#   R5   R.   R/   (   R   R   RI   R7   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt   test_single_branch+  s    c         C   sÍ   t  j ƒ  } t  j j d d d | j ƒ  d d ƒ } t | j ƒ  ƒ } |  j | | g ƒ |  j t	 | d t  j ƒ ƒ t  j
 j | ƒ } t | j ƒ  ƒ } |  j | | g ƒ |  j t	 | d t  j
 ƒ ƒ d  S(   NR   i   R   R   i   i    (   R   R   R   R   R   R   RH   R   R#   R5   R.   R/   (   R   R   R   RI   R;   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt   test_single_leaf8  s    'c         C   s,   |  j  | d |  j | ƒ | j d ƒ d  S(   Ni    (   R   RG   t   pop(   R   t   resultt   leafname(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt   check_leaf_namedF  s    c            s�   i ‡  f d †  d 6‡  f d †  d 6} ˆ  j  | d ˆ  j d ƒ | j d ƒ x, ˆ  j d j ƒ  D] } | | d | ƒ qb Wd  S(   Nc            s   ˆ  j  |  d ƒ S(   NRE   (   RP   (   RN   (   R   (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt   <lambda>O  s    RE   c            s   ˆ  j  |  d ƒ S(   NRF   (   RP   (   RN   (   R   (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRQ   P  s    RF   i    R?   RN   (   R   RG   RM   R(   (   R   RN   t
   action_fort   key(    (   R   sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt
   check_r_b2L  s    c            s�   i ‡  f d †  d 6‡  f d †  d 6} ˆ  j  | d ˆ  j d ƒ | j d ƒ x, ˆ  j d j ƒ  D] } | | d | ƒ qb Wd  S(   Nc            s   ˆ  j  |  d ƒ S(   NRC   (   RP   (   RN   (   R   (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRQ   ]  s    RC   c            s   ˆ  j  |  d ƒ S(   NRD   (   RP   (   RN   (   R   (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRQ   ^  s    RD   i    RA   RN   (   R   RG   RM   R(   (   R   RN   RR   RS   (    (   R   sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt   check_r_b1_b1Z  s    c            s{   i ˆ  j  d 6‡  f d †  d 6} ˆ  j | d ˆ  j d ƒ | j d ƒ x, ˆ  j d j ƒ  D] } | | d | ƒ q\ Wd  S(   NRA   c            s   ˆ  j  |  d ƒ S(   NRB   (   RP   (   RN   (   R   (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRQ   l  s    RB   i    R>   RN   (   RU   R   RG   RM   R(   (   R   RN   RR   RS   (    (   R   sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt
   check_r_b1h  s    
c            s}   i ˆ  j  d 6ˆ  j d 6‡  f d †  d 6} ˆ  j | d ˆ  j ƒ | j d ƒ x( ˆ  j j ƒ  D] } | | d | ƒ q^ Wd  S(   NR>   R?   c            s   ˆ  j  |  d ƒ S(   NR@   (   RP   (   RN   (   R   (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRQ   {  s    R@   i    RN   (   RV   RT   R   R   RM   R(   (   R   RN   RR   RS   (    (   R   sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt
   check_rootv  s    

c         C   sP   t  |  j d j ƒ  ƒ } |  j t | ƒ d ƒ |  j | ƒ |  j | g  ƒ d  S(   NR?   i   (   R   RG   RH   R   R   RT   (   R   RN   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt	   test_r_b2…  s    c         C   sP   t  |  j d j ƒ  ƒ } |  j t | ƒ d ƒ |  j | ƒ |  j | g  ƒ d  S(   NRA   i   (   R   RG   RH   R   R   RU   (   R   RN   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt   test_r_b1_b1�  s    c         C   sP   t  |  j d j ƒ  ƒ } |  j t | ƒ d ƒ |  j | ƒ |  j | g  ƒ d  S(   NR>   i   (   R   RG   RH   R   R   RV   (   R   RN   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt	   test_r_b1•  s    c         C   si   t  |  j j ƒ  ƒ } |  j t | ƒ d ƒ |  j t d „  | Dƒ ƒ ƒ |  j | ƒ |  j | g  ƒ d  S(   Ni
   c         s   s!   |  ] } t  | t j ƒ Vq d  S(   N(   R5   R   R   (   t   .0t   e(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pys	   <genexpr>¡  s    (   R   R   RH   R   R   R#   t   allRW   (   R   RN   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyR-   �  s
    c         C   s{   t  j j |  j ƒ } t | j ƒ  ƒ } |  j t | ƒ d ƒ |  j t	 d „  | Dƒ ƒ ƒ |  j
 | ƒ |  j | g  ƒ d  S(   Ni
   c         s   s!   |  ] } t  | t j ƒ Vq d  S(   N(   R5   R   R.   (   R[   R\   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pys	   <genexpr>«  s    (   R   R.   R/   R   R   RH   R   R   R#   R]   RW   (   R   R2   RN   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyR3   ¦  s    (   R   R   R   RJ   RK   RL   RP   RT   RU   RV   RW   RX   RY   RZ   R-   R3   (    (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyR=   ü   s   	 													t   TestPostOrderc           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 RS(   c         C   s)  t  j j ƒ  |  _ t  j ƒ  |  _ |  j j ƒ  } i	 t  j j d d d d ƒ d 6t  j j d d d d ƒ d 6t  j j d d d	 | d
 d ƒ d 6t  j j d d d d ƒ d 6t  j j d d d	 | d
 d ƒ d 6t  j j d d d	 | d
 d ƒ d 6t  j j d d d	 | d
 d ƒ d 6t  j j d d d	 | d
 d ƒ d 6t  j j d d d	 | d
 d ƒ d 6|  _ |  j d |  j d <|  j d |  j d <|  j d |  j d <|  j d |  j d d <|  j d |  j d d <|  j d |  j d d <|  j d |  j d d <|  j d |  j d d <|  j d |  j d d <d  S(   NR   i    R   i   R>   i   R?   i   R   R   i   R@   i   RA   i   RB   i   RC   i	   RD   i
   RE   i   RF   (   R   R   R   R   R   R   R   RG   (   R   R   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyR   ²  s,    """""(c         C   s©   t  j j ƒ  } t | j ƒ  ƒ } |  j | | g ƒ |  j t | d t  j ƒ ƒ t  j j	 | ƒ } t | j ƒ  ƒ } |  j | | g ƒ |  j t | d t  j ƒ ƒ d  S(   Ni    (
   R   R   R   R   t   postorder_iterationR   R#   R5   R.   R/   (   R   R   RI   R2   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRJ   Ò  s    c         C   sµ   t  j j d d d d ƒ } t | j ƒ  ƒ } |  j | | g ƒ |  j t | d t  j ƒ ƒ t  j j	 | ƒ } t | j ƒ  ƒ } |  j | | g ƒ |  j t | d t  j ƒ ƒ d  S(   NR   i    R   i   (
   R   R   R   R   R_   R   R#   R5   R.   R/   (   R   R   RI   R7   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRK   ß  s    c         C   sÍ   t  j ƒ  } t  j j d d d | j ƒ  d d ƒ } t | j ƒ  ƒ } |  j | | g ƒ |  j t	 | d t  j ƒ ƒ t  j
 j | ƒ } t | j ƒ  ƒ } |  j | | g ƒ |  j t	 | d t  j
 ƒ ƒ d  S(   NR   i   R   R   i   i    (   R   R   R   R   R   R   R_   R   R#   R5   R.   R/   (   R   R   R   RI   R;   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRL   ì  s    'c         C   s,   |  j  | d |  j | ƒ | j d ƒ d  S(   Ni    (   R   RG   RM   (   R   RN   RO   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRP   ú  s    c            s�   i ‡  f d †  d 6‡  f d †  d 6} x, ˆ  j  d j ƒ  D] } | | d | ƒ q: Wˆ  j | d ˆ  j  d ƒ | j d ƒ d  S(   Nc            s   ˆ  j  |  d ƒ S(   NRE   (   RP   (   RN   (   R   (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRQ     s    RE   c            s   ˆ  j  |  d ƒ S(   NRF   (   RP   (   RN   (   R   (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRQ     s    RF   R?   RN   i    (   RG   R(   R   RM   (   R   RN   RR   RS   (    (   R   sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRT      s    c            s�   i ‡  f d †  d 6‡  f d †  d 6} x, ˆ  j  d j ƒ  D] } | | d | ƒ q: Wˆ  j | d ˆ  j  d ƒ | j d ƒ d  S(   Nc            s   ˆ  j  |  d ƒ S(   NRC   (   RP   (   RN   (   R   (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRQ     s    RC   c            s   ˆ  j  |  d ƒ S(   NRD   (   RP   (   RN   (   R   (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRQ     s    RD   RA   RN   i    (   RG   R(   R   RM   (   R   RN   RR   RS   (    (   R   sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRU     s    c            s{   i ˆ  j  d 6‡  f d †  d 6} x, ˆ  j d j ƒ  D] } | | d | ƒ q4 Wˆ  j | d ˆ  j d ƒ | j d ƒ d  S(   NRA   c            s   ˆ  j  |  d ƒ S(   NRB   (   RP   (   RN   (   R   (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRQ      s    RB   R>   RN   i    (   RU   RG   R(   R   RM   (   R   RN   RR   RS   (    (   R   sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRV     s    
c            s}   i ˆ  j  d 6ˆ  j d 6‡  f d †  d 6} x( ˆ  j j ƒ  D] } | | d | ƒ q: Wˆ  j | d ˆ  j ƒ | j d ƒ d  S(   NR>   R?   c            s   ˆ  j  |  d ƒ S(   NR@   (   RP   (   RN   (   R   (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRQ   /  s    R@   RN   i    (   RV   RT   R   R(   R   RM   (   R   RN   RR   RS   (    (   R   sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRW   *  s    

c         C   sP   t  |  j d j ƒ  ƒ } |  j t | ƒ d ƒ |  j | ƒ |  j | g  ƒ d  S(   NR?   i   (   R   RG   R_   R   R   RT   (   R   RN   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRX   9  s    c         C   sP   t  |  j d j ƒ  ƒ } |  j t | ƒ d ƒ |  j | ƒ |  j | g  ƒ d  S(   NRA   i   (   R   RG   R_   R   R   RU   (   R   RN   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRY   A  s    c         C   sP   t  |  j d j ƒ  ƒ } |  j t | ƒ d ƒ |  j | ƒ |  j | g  ƒ d  S(   NR>   i   (   R   RG   R_   R   R   RV   (   R   RN   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRZ   I  s    c         C   si   t  |  j j ƒ  ƒ } |  j t | ƒ d ƒ |  j t d „  | Dƒ ƒ ƒ |  j | ƒ |  j | g  ƒ d  S(   Ni
   c         s   s!   |  ] } t  | t j ƒ Vq d  S(   N(   R5   R   R   (   R[   R\   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pys	   <genexpr>U  s    (   R   R   R_   R   R   R#   R]   RW   (   R   RN   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyR-   Q  s
    c         C   s{   t  j j |  j ƒ } t | j ƒ  ƒ } |  j t | ƒ d ƒ |  j t	 d „  | Dƒ ƒ ƒ |  j
 | ƒ |  j | g  ƒ d  S(   Ni
   c         s   s!   |  ] } t  | t j ƒ Vq d  S(   N(   R5   R   R.   (   R[   R\   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pys	   <genexpr>_  s    (   R   R.   R/   R   R   R_   R   R   R#   R]   RW   (   R   R2   RN   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyR3   Z  s    (   R   R   R   RJ   RK   RL   RP   RT   RU   RV   RW   RX   RY   RZ   R-   R3   (    (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyR^   °  s   	 													t   TestTreec           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s–   t  j ƒ  } |  j | j t ƒ | j } |  j t | t  j ƒ ƒ |  j | j ƒ  ƒ  d ƒ | j	 } |  j t | t  j
 ƒ ƒ |  j | j ƒ  g  ƒ d  S(   Ni    (   R   t   treeR   t   in_constructiont   FalseR   R#   R5   R   R   R.   R(   (   R   Ra   t   wt   r(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt	   test_treef  s    		c         C   sÈ   t  j ƒ  } |  j | j t ƒ t  j | ƒ } |  j | j ƒ |  j | j ƒ |  j | j ƒ |  j	 t
 t  j | ƒ | j ƒ  |  j | j ƒ |  j | j ƒ |  j | j ƒ |  j	 t
 | j d ƒ d  S(   Nt   a(   R   Ra   R   Rb   Rc   t   ukkonenR#   t   is_attachedt   is_validR   R    t   detachR%   R   (   R   Ra   t   builder(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt   test_ukkonen1r  s    
c         C   s   t  j ƒ  } t  j | ƒ } | j d d ƒ |  j | j ƒ | j d d ƒ |  j | j ƒ | j ƒ  |  j | j ƒ |  j | j	 ƒ t  j | ƒ } |  j | j ƒ |  j | j ƒ |  j | j	 ƒ | j d d ƒ |  j | j ƒ |  j
 | j ƒ | j d d ƒ |  j | j ƒ |  j
 | j ƒ | j d d ƒ |  j | j ƒ |  j
 | j ƒ | j d d ƒ |  j | j ƒ | j ƒ  |  j | j ƒ |  j | j	 ƒ t  j | ƒ } |  j | j ƒ |  j | j ƒ |  j | j	 ƒ | j d d ƒ |  j | j ƒ | j ƒ  | j } |  j | j ƒ  ƒ |  j t | j ƒ  ƒ t d d d d g ƒ ƒ | d } |  j | j ƒ  ƒ |  j | j ƒ  ƒ |  j | j d ƒ |  j | j d ƒ |  j t | j ƒ  ƒ t d d g ƒ ƒ |  j | j | ƒ | d } |  j | j ƒ  ƒ |  j | j ƒ  ƒ |  j | j d ƒ |  j | j d ƒ |  j t | j ƒ  ƒ t d d g ƒ ƒ |  j | j | ƒ | d } |  j | j ƒ  ƒ |  j | j d ƒ |  j | j d	 ƒ |  j | j d ƒ |  j | j | ƒ | d } |  j | j ƒ  ƒ |  j | j d
 ƒ |  j | j d	 ƒ |  j | j d ƒ |  j | j | ƒ | d } |  j | j ƒ  ƒ |  j | j d
 ƒ |  j | j d	 ƒ |  j | j d ƒ |  j | j | ƒ | d }	 |  j |	 j ƒ  ƒ |  j |	 j ƒ  ƒ |  j |	 j d ƒ |  j |	 j d ƒ |  j t |	 j ƒ  ƒ t d d g ƒ ƒ |  j |	 j | ƒ |	 d }
 |  j |
 j ƒ  ƒ |  j |
 j d ƒ |  j |
 j d	 ƒ |  j |
 j d ƒ |  j |
 j |	 ƒ |	 d } |  j | j ƒ  ƒ |  j | j d
 ƒ |  j | j d	 ƒ |  j | j d ƒ |  j | j |	 ƒ | d } |  j | j ƒ  ƒ |  j | j d
 ƒ |  j | j d	 ƒ |  j | j d
 ƒ |  j | j | ƒ | d } |  j | j ƒ  ƒ |  j | j d ƒ |  j | j d	 ƒ |  j | j d ƒ |  j | j | ƒ |  j | j | ƒ |  j |	 j | ƒ |  j | j |	 ƒ d  S(   Nt   glyphRg   t   nt   st   $i    i   i   i   i   i   i   i   (   R   Ra   Rh   R   R#   Rj   Rk   R%   Ri   Rb   R   R   R$   R   R+   R(   R&   R   R   R   R   R   (   R   Ra   Rl   R   t   b_at   b_a_nt   b_a_n_nt   b_a_n_st   b_a_st   b_nt   b_n_nt   b_n_st   b_st   b_dl(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt   test_ukkonen2…  sÎ    


	.
(
(



(



(   R   R   Rf   Rm   R|   (    (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyR`   d  s   		t   TestMatchingStatisticsc           B   s   e  Z d  „  Z RS(   c         C   s€  t  j ƒ  } t t  j | t d ƒ ƒ ƒ } |  j | d | j d f f g d ƒ t  j d | ƒ } x d D] } | j | ƒ qi W|  j t	 t  j | t ƒ  ƒ | j
 ƒ  | j } | d } | d } | d } | d }	 | d }
 | d	 } t t  j | g  ƒ ƒ } |  j | g  ƒ t t  j | t d
 ƒ ƒ ƒ } |  j | d | d f f d | d f f d | d f f d |	 d f f d | d f f d | d f f d |	 d f f d | d f f d | d f f d | d f f d |	 d f f d |
 d f f d | d f f d | d f f d | d f f d | d f f d | d f f d |	 d f f d |
 d f f d | d f f d | d f f g ƒ d  S(   Nt   ABCi    i   Ra   s   TTAGC$t   Tt   At   Gt   Ct   QTTATTATTTAGCQWTTAGFKi   i   i   i   (   R   Ra   R   t   matching_statisticsR   R   Rh   R   R   R    Rk   (   R   Ra   RN   Rl   t   cR   t   branch_tt   leaf_0t   leaf_1t   leaf_2t   leaf_3t   leaf_4(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt   test
  sR    &
	





(   R   R   RŒ   (    (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyR}     s   t   TestLeafIndicesc           B   s   e  Z d  „  Z RS(   c         C   s¼  t  j ƒ  } t t  j | t d ƒ ƒ ƒ } |  j | d | j d f f g d ƒ t  j d | ƒ } x d D] } | j | ƒ qi W| j ƒ  t	 j
 d | j ƒ } | j } | d } | d } | d }	 | d }
 | d	 } | d
 } | d } |  j | | d g ƒ |  j | |	 d g ƒ |  j | |
 d g ƒ |  j | | d g ƒ |  j | | d g ƒ |  j | | d g ƒ |  j t | | ƒ d d g ƒ |  j t | | ƒ t d ƒ ƒ d  S(   NR~   i    i   Ra   s   TTAGC$R   R   R€   R�   R‚   Rq   i   i   i   i   i   (   R   Ra   R   R„   R   R   Rh   R   Rk   R   t   calculate_leaf_indicest   sortedt   range(   R   Ra   RN   Rl   R…   t   leaf_indices_belowR   R†   R‡   Rˆ   R‰   RŠ   R‹   t   leaf_5(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyRŒ   C  s0    &
	






 (   R   R   RŒ   (    (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyR�   A  s   c         C   s   t  S(   N(   t   alltests(   t   loadert   testst   pattern(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt
   load_tests‰  s    t   __main__t	   verbosityi   (   t
   __future__R    t   scitbxR   t   scitbx.suffixtreeR   t   unittestt   TestCaseR   R   R=   R^   R`   R}   R�   t
   TestLoadert   loadTestsFromTestCaset
   suite_wordt
   suite_edget   suite_preordert   suite_postordert
   suite_treet	   suite_msit   suite_leaf_indicest	   TestSuiteR“   R—   R   t   TextTestRunnert   run(    (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/suffixtree/test/tst_single.pyt   <module>   sF   "Ò´´¤9$								