
    j\h                        d dl mZ  G d de      Z G d de      Zedk(  rdZ ede        e       ZeD ]  Z	ej                  e	         ed	 eej                               g Zej                  ej                  ej                  gg e       ej                  ej                   ej                   gg e        ed
e       yy)    )print_functionc                       e Zd Zd Zy)Nodec                 .    i | _         d | _        d| _        y )Nr   )edgeslinklenselfs    V/home/xtuchyna/git/gen-test-bench/data/python_mutations/docs_python/eertree/eertree.py__init__zNode.__init__   s    $*$)$(    N)__name__
__module____qualname__r    r   r   r   r      s    r   r   c                   $    e Zd Zd Zd Zd Zd Zy)Eertreec                    g | _         t               | _        t               | _        | j                  x| j                  _        | j                  _        d| j                  _        d| j                  _        dg| _        | j                  | _        y )Nr   )nodesr   rtorter   r	   SmaxSufTr
   s    r   r   zEertree.__init__   sa    $*V$(V$( #'((*$((-$((-$((,$((,3$&$,r   c                    |}t        | j                        }|j                   }t        |      t        | j                        k7  r| j                  ||z
  dz
     |k7  rut        |      t        |j                        k7  sJ |j                  }|j                   }t        |      t        | j                        k7  r| j                  ||z
  dz
     |k7  ru|S )N   )r	   r   idr   r   )r   	startNodeauiks         r   get_max_suffix_palzEertree.get_max_suffix_pal   s     !	$&&k!ee!
1DHH$&&Q"3q"8
Q%2aff:

vv1uu1 	1DHH$&&Q"3q"8
 
(r   c                    | j                  | j                  |      }||j                  v}|rt               }| j                  j                  |       |j                  dz   |_        |j                  dk(  r| j                  |_        n.| j                  |j                  |      j                  |   |_        ||j                  |<   |j                  |   | _        | j                  j                  |       |S )N   r   )
r$   r   r   r   r   appendr	   r   r   r   )r   r    QcreateANewNodePs        r   addzEertree.add&   s     dllA.! AGG|.v1::Q551915eeqjXXAF
 $$QVVQ/55a8AF 1771: $, &&--	r   c                    |j                   D ]-  }|j                   |   }| j                  |||gz   ||gz   |       / t        |      t        | j                        k7  rt        |      t        | j                        k7  radj                  |      }t        |d         t        | j                        k(  r|d d d   |z   }n|d d d   |dd  z   }|j                  |       y y y )N r   r   r   )r   get_sub_palindromesr   r   r   joinr'   )	r   ndnodesToHerecharsToHereresultlnkNamend2tmp	assembleds	            r   r.   zEertree.get_sub_palindromesJ   s    
 g	'	3CcU!2K	4I6R 
 Vr$((|2"TXX, 6		3QBtxxL(DbD	CIDbD	CG#I	== !7r   N)r   r   r   r   r$   r+   r.   r   r   r   r   r   
   s    "Hr   r   __main__eertreezProcessing stringzNumber of sub-palindromes:zSub-palindromes:N)
__future__r   objectr   r   r   stprintr9   chr+   r	   r   r3   r.   r   r   r   r   r   <module>r?      s    %6 Pf Pd ZR 9R	++b/  $c'--&89 W[[7;;-VDW[[7;;-VDF# r   