
mYA@                 @   s   d  d l  m Z d  d l Z d  d l Z d d l m Z d  d l m Z y e Wn e	 k
 rp d d   Z Yn XGd d	   d	 e j
  Z Gd
 d   d e j
  Z d S)    )with_statementN   )support)pytreec             C   s   t  |   } | j   | S)N)listsort)Zlstl r	   L/build/mts/release/bora-5583004/publish/lin64/lib64/python3.5/test_pytree.pysorted   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+ d,   Z d- d.   Z d/ d0   Z d1 d2   Z d3 d4   Z d5 d6   Z d7 d8   Z d9 d:   Z d; d<   Z  d= d>   Z! d? d@   Z" dA S)B	TestNodesc             C   s   d  S)Nr	   )selfr	   r	   r
   test_instantiate_base"   s    zTestNodes.test_instantiate_basec             C   s<   t  j d d  } |  j | j d  |  j | j d  d  S)Nd   foo)r   LeafassertEqualtypevalue)r   l1r	   r	   r
   	test_leaf'   s    zTestNodes.test_leafc             C   s,   t  j d d  } |  j t |  d  d  S)Nr   r   zLeaf(100, 'foo'))r   r   r   repr)r   r   r	   r	   r
   test_leaf_repr,   s    zTestNodes.test_leaf_reprc             C   sZ   t  j d d  } |  j t |  d  t  j d d d d	 } |  j t |  d  d  S)
Nr   r   context 
   r   z foor   r   )r   r   )r   r   r   str)r   r   l2r	   r	   r
   test_leaf_str0   s    zTestNodes.test_leaf_strc             C   s5   t  j d d  } d | _ |  j t |  d  d  S)N      Zfoo_Zfoo_5)r   r   prefixr   r   )r   r   r	   r	   r
   test_leaf_str_numeric_value6   s    	z%TestNodes.test_leaf_str_numeric_valuec             C   s   t  j d d  } t  j d d d d
 } |  j | |  t  j d d  } t  j d d  } |  j | |  |  j | |  d  S)Nr   r   r   r   r   r   e   barr   r   )r   r&   )r   r   r   assertNotEqual)r   r   r   l3l4r	   r	   r
   test_leaf_equality=   s    zTestNodes.test_leaf_equalityc             C   se   t  j d d  } |  j | j d  |  j | j  d | _ |  j | j d  |  j | j  d  S)Nr   r    z  ##

)r   r   r   r"   assertFalsewas_changed
assertTrue)r   r   r	   r	   r
   test_leaf_prefixF   s    	zTestNodes.test_leaf_prefixc             C   sl   t  j d d  } t  j d d  } t  j d | | g  } |  j | j d  |  j | j | | g  d  S)Nr   r      r%   i  )r   r   Noder   r   children)r   r   r   n1r	   r	   r
   	test_nodeN   s
    zTestNodes.test_nodec             C   sr   t  j d d  } t  j d d d d } t  j d | | g  } |  j t |  d	 t |  t |  f  d  S)Nr   r   r%   r   r   r   r   i  zNode(1000, [%s, %s])r   r   )r   r5   )r   r   r1   r   r   )r   r   r   r3   r	   r	   r
   test_node_reprU   s
    zTestNodes.test_node_reprc             C   s\   t  j d d  } t  j d d d d } t  j d | | g  } |  j t |  d	  d  S)Nr   r   r%   r   r   r   r   i  zfoo barr   r   )r   r7   )r   r   r1   r   r   )r   r   r   r3   r	   r	   r
   test_node_str\   s    zTestNodes.test_node_strc             C   s   t  j d d  } |  j | j d  t  j d | g  } |  j | j d  d | _ |  j | j d  |  j | j d  d  S)Nr   r   r+   i  r   )r   r   r   r"   r1   )r   r   r3   r	   r	   r
   test_node_prefixb   s    	zTestNodes.test_node_prefixc             C   s  t  j d d d d } t  j d d d d } t  j d | | g  } |  j | j   | j  |  j | j   d  |  j | j   d  t  j d d d d	 } t  j d | | g  } |  j | j   | j  |  j | j   d  |  j | j   d  d  S)
Nr   r   r"   ar%   bi  r+   c)r   r   r1   r   Z
get_suffixr"   )r   r   r   r3   r(   n2r	   r	   r
   test_get_suffixk   s    zTestNodes.test_get_suffixc             C   s`   t  j d f   } t  j d g  d d } |  j | |  t  j d f   } |  j | |  d  S)	Ni  r   r   r   r   i  r   r   )r   r?   )r   r1   r   r'   )r   r3   r=   n3r	   r	   r
   test_node_equality{   s
    zTestNodes.test_node_equalityc             C   s   t  j d d  } t  j d d  } t  j d | g  } t  j d | g  } |  j | |  t  j d d  } t  j d | g  } |  j | |  d  S)Nr   r   i  r%   )r   r   r1   r   r'   )r   r   r   r3   r=   r(   r@   r	   r	   r
   test_node_recursive_equality   s    z&TestNodes.test_node_recursive_equalityc             C   s   t  j d d  } t  j d d  } t  j d d  } t  j d | | | g  } |  j | j | | | g  |  j | j t  |  j | j  t  j d d  } | j	 |  |  j | j | | | g  |  j | j t  |  j
 | j  d  S)Nr   r   +r%   i  -)r   r   r1   r   r2   assertIsInstancer   r,   r-   replacer.   )r   r   r   r(   r3   Zl2newr	   r	   r
   test_replace   s    zTestNodes.test_replacec             C   s   t  j d d  } t  j d d  } t  j d d  } t  j d | | | g  } | j t  j d d  t  j d d  g  |  j t |  d  |  j | j t  d  S)Nr   r   rC   r%   i  *zfoo**bar)	r   r   r1   rF   r   r   rE   r2   r   )r   r   r   r(   r3   r	   r	   r
   test_replace_with_list   s    +z TestNodes.test_replace_with_listc             C   s   t  j d d  } t  j d d  } t  j d d  } t  j d | | g  } t  j d | g  } t  j d | | g  } |  j t | j    | | | g  d  S)Nr   r   r%   fooeyi  )r   r   r1   r   r   leaves)r   r   r   r(   r=   r@   r3   r	   r	   r
   test_leaves   s    zTestNodes.test_leavesc             C   s   t  j d d  } t  j d d  } t  j d | | g  } t  j d g   } t  j d | | g  } |  j | j   d  |  j | j   d  |  j | j   d  d  S)Nr   r   r%   i  r    r   r   )r   r   r1   r   Zdepth)r   r   r   r=   r@   r3   r	   r	   r
   
test_depth   s    zTestNodes.test_depthc             C   s   t  j d d  } t  j d d  } t  j d d  } t  j d | | g  } t  j d | | g  } |  j t | j    | | | | | g  d  S)Nr   r   r%   rJ   i  )r   r   r1   r   r   Z
post_order)r   r   r   r(   c1r3   r	   r	   r
   test_post_order   s    zTestNodes.test_post_orderc             C   s   t  j d d  } t  j d d  } t  j d d  } t  j d | | g  } t  j d | | g  } |  j t | j    | | | | | g  d  S)Nr   r   r%   rJ   i  )r   r   r1   r   r   Z	pre_order)r   r   r   r(   rN   r3   r	   r	   r
   test_pre_order   s    zTestNodes.test_pre_orderc             C   sa  t  j d d  } |  j | j  | j   |  j | j  t  j d d  } t  j d | g  } |  j | j  | j   |  j | j  t  j d d  } t  j d d  } t  j d d  } t  j d | | | g  } t  j d | g  } |  j | j  |  j | j  |  j | j  | j   |  j | j  |  j | j  |  j | j  d  S)Nr   fi  r   rC   r%   )r   r   r,   r-   Zchangedr.   r1   )r   r   r3   r   r(   r=   r	   r	   r
   test_changed   s*    


zTestNodes.test_changedc             C   sZ   xS d D]K } t  j d d d | } |  j t |  | d  |  j | j |  q Wd  S)Nxyz_r+   r   r   r"   )rS   r+   )r   r   r.   r   r   r"   )r   r"   r   r	   r	   r
   test_leaf_constructor_prefix   s    z&TestNodes.test_leaf_constructor_prefixc             C   s   x d
 D] } t  j d d  } t  j d d d d } t  j d | | g d | } |  j t |  | d	  |  j | j |  |  j | j |  |  j | j d  q Wd  S)NrS   r+   r   r   r   r"   _i  Zself_foo)zxyz_r+   )r   r   r1   r.   r   r   r"   )r   r"   r   r   r3   r	   r	   r
   test_node_constructor_prefix   s    z&TestNodes.test_node_constructor_prefixc             C   so  t  j d d  } t  j d d  } t  j d | | g  } t  j d | g  } |  j | j   d  |  j | j g   |  j | j |  |  j | j d   |  j | j d   |  j | j  |  j	 | j  |  j | j   d  |  j | j   d  |  j | j g   |  j | j d   |  j | j d   |  j | j d   |  j	 | j  |  j	 | j  d  S)Nr   r   i  r   r   )
r   r   r1   r   remover2   parentr,   r-   r.   )r   r   r   r3   r=   r	   r	   r
   test_remove   s&    zTestNodes.test_removec             C   sb   t  j d g   } | j   |  j | j d   t  j d d  } | j   |  j | j d   d  S)Ni  r   r   )r   r1   rW   r   rX   r   )r   r3   r   r	   r	   r
   test_remove_parentless
  s    

z TestNodes.test_remove_parentlessc             C   s/  t  j d d  } t  j d | g  } t  j d d  } | j d |  |  j | j d   |  j | j |  |  j | j | g  t  j d | g  } | j d |  |  j | j d   |  j | j |  |  j | j d   |  j | j | g  |  j t | j d |  |  j t	 | j d t
  d  S)Nr   r   i  r%   r      )r   r   r1   Z	set_childr   rX   r2   assertRaises
IndexError	Exceptionr   )r   r   r3   r   r=   r	   r	   r
   test_node_set_child  s    zTestNodes.test_node_set_childc             C   s   t  j d d  } t  j d | g  } t  j d d  } | j d |  |  j | j |  |  j | j | | g  t  j d d  } | j d |  |  j | j | | | g  |  j t | j d t	  d  S)Nr   r   i  r%   r   abcr    )
r   r   r1   Zinsert_childr   rX   r2   r\   r^   r   )r   r   r3   r   r(   r	   r	   r
   test_node_insert_child(  s    z TestNodes.test_node_insert_childc             C   s   t  j d g   } t  j d d  } | j |  |  j | j |  |  j | j | g  t  j d d  } | j |  |  j | j |  |  j | j | | g  |  j t | j t	  d  S)Ni  r   r   r%   )
r   r1   r   Zappend_childr   rX   r2   r\   r^   r   )r   r3   r   r   r	   r	   r
   test_node_append_child8  s    z TestNodes.test_node_append_childc             C   sy   t  j d g   } t  j d g   } t  j d | | g  } |  j | j |  |  j | j d   |  j | j d   d  S)Ni  )r   r1   assertIsnext_siblingr   )r   r3   r=   p1r	   r	   r
   test_node_next_siblingH  s    z TestNodes.test_node_next_siblingc             C   sy   t  j d d  } t  j d d  } t  j d | | g  } |  j | j |  |  j | j d   |  j | j d   d  S)Nr   r:   r;   i  )r   r   r1   rc   rd   r   )r   r   r   re   r	   r	   r
   test_leaf_next_siblingQ  s    z TestNodes.test_leaf_next_siblingc             C   sy   t  j d g   } t  j d g   } t  j d | | g  } |  j | j |  |  j | j d   |  j | j d   d  S)Ni  )r   r1   rc   prev_siblingr   )r   r3   r=   re   r	   r	   r
   test_node_prev_siblingZ  s    z TestNodes.test_node_prev_siblingc             C   sy   t  j d d  } t  j d d  } t  j d | | g  } |  j | j |  |  j | j d   |  j | j d   d  S)Nr   r:   r;   i  )r   r   r1   rc   rh   r   )r   r   r   re   r	   r	   r
   test_leaf_prev_siblingc  s    z TestNodes.test_leaf_prev_siblingN)#__name__
__module____qualname__r   r   r   r   r#   r*   r/   r4   r6   r8   r9   r>   rA   rB   rG   rI   rL   rM   rO   rP   rR   rT   rV   rY   rZ   r_   ra   rb   rf   rg   ri   rj   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	 S)
TestPatternsc       
      C   s  t  j d d  } t  j d d  } t  j d d  } t  j d | | g  } t  j d | g  } t  j d | | g  } t  j d d d d } i  } |  j | j | d |  |  j | i   |  j | j | d |  |  j | i   |  j | j | d |  |  j | i   |  j | j | d |  |  j | d | i  i  } |  j | j | d |  |  j | i   t  j d | g d d }	 |  j |	 j | d |  |  j | i   |  j |	 j | d |  |  j | i   |  j |	 j | d |  |  j | d | d | i  i  } |  j |	 j | d |  |  j | i   |  j |	 j | d |  |  j | i   d  S)	Nr   r   r%   i  nameplresultspn)	r   r   r1   LeafPatternr,   matchr   r.   NodePattern)
r   r   r   r(   r3   r=   rootrp   rrr   r	   r	   r
   test_basic_patternsq  s>    z TestPatterns.test_basic_patternsc             C   s:  t  j d d  } t  j d d  } t  j d d  } t  j d | | g  } t  j d | g  } t  j d | | g  } t  j d d d d } t  j d | g d d } t  j | g | | g g d d }	 i  }
 |  j |	 j | g |
   |  j |
 i   |  j |	 j | g |
   |  j |
 i   |  j	 |	 j | g |
   |  j t
 |
 j    d d d g  |  j |
 d |  |  j |
 d |  |  j |
 d | g  |  j |
 d | d | d | g i  i  }
 |  j	 |	 j | | g |
   |  j |
 d | d | | g i  |  j |
 d |  i  }
 d  S)	Nr   r   r%   i  ro   rp   rr   pw)r   r   r1   rs   ru   WildcardPatternr,   Z	match_seqr   r.   r   keysrc   )r   r   r   r(   r3   r=   rv   rp   rr   ry   rw   r	   r	   r
   test_wildcard  s2    $%%"zTestPatterns.test_wildcardc             C   s  t  j d d  } t  j d d  } t  j d d  } t  j d d  } t  j d d  } t  j d d  } | | | | | | g } t  j d |  } t  j d d d	  }	 t  j d d d
  }
 t  j d d d  } t  j d d d  } t  j d d d  } t  j d d d  } t  j |	 |
 | g | | g |	 |
 g | | g | | g g d d d d d d } |  j d d   | j |  D d d d d d g  t  j d d d | g d d  } t t  j | g | g   } |  j t	 |  d  | d \ } } |  j | d  |  j t
 | d  d  |  j | d | | | | | | g  x2 d D]* } |  j | d | t  j d |   qVWd  S) Nr   r:   r;   r<   derQ   i  papbpcpdpepfminmaxr[   ro   ry   c             S   s   g  |  ] } | d   q S)r   r	   ).0xr	   r	   r
   
<listcomp>  s   	 z6TestPatterns.test_generate_matches.<locals>.<listcomp>   r!   r       r   Zcontentprr   Zabcdefp)r   r   r1   rs   rz   r   Zgenerate_matchesru   r   lenr   )r   ZlaZlbZlcZldleZlfrK   rv   r   r   r   r   r   r   ry   r   matchesr<   rw   r	   r	   r
   test_generate_matches  s8    !!&z"TestPatterns.test_generate_matchesc             C   s   t  j d t  j d  t  j d d  t  j d  f  } t  j d d  } t  j d d  } t  j d d	  } t  j d | | | g  } i  } |  j | j | |   |  j | d | g  d  S)
NiK     ro   args   (r   r   ))	r   ru   rs   rz   r   r1   r.   rt   r   )r   patternr   r   r(   Znoderw   r	   r	   r
   test_has_key_example  s    	z!TestPatterns.test_has_key_exampleN)rk   rl   rm   rx   r|   r   r   r	   r	   r	   r
   rn   m  s   $rn   )Z
__future__r   syswarningsr+   r   Zlib2to3r   r   	NameErrorZTestCaser   rn   r	   r	   r	   r
   <module>   s    P