mς
­fIc           @   s   d  k  Z  d  k Z d k l Z d  k Z d   Z d   Z d e i f d     YZ d  d  Z
 e d j o e
 d e  n d  S(	   N(   s   StringIOc         C   sK   t    } t i } | t _ t i |   | t _ | i   } | i	   | S(   N(
   t   StringIOt   ft   syst   stdoutt   tmpt   dist   funct   getvaluet   resultt   close(   R   R   R   R   (    (    t0   /mit/python/lib/python2.4/test/test_peepholer.pyt   disassemble   s    				
c         C   s   t  t |  d d   S(   Nt    t   single(   R   t   compilet   line(   R   (    (    R
   t
   dis_single   s    t   TestTranformsc           B   sG   t  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   Nc         C   sa   d   } t |  } x! d D] } |  i | | j  q Wx! d D] } |  i | | j  q@ Wd  S(   Nc         C   s   |  d j p ~  n d  S(   Ni   (   t   x(   R   (    (    R
   t   unot   s    t	   UNARY_NOTt   JUMP_IF_FALSEt   JUMP_IF_TRUEt   POP_TOP(   R   R   (   R   R   (   R   R   t   asmt   elemt   selft   assert_(   R   R   R   R   (    (    R
   t	   test_unot   s    	  c         C   sF   x? d	 d
 d d f D]+ \ } } t |  } |  i | | j  q Wd  S(   Ns
   not a is bs   (is not)s
   not a in bs   (not in)s   not a is not bs   (is)s   not a not in bs   (in)(   s
   not a is bs   (is not)(   s
   not a in bs   (not in)(   s   not a is not bs   (is)(   s   not a not in bs   (in)(   R   R   R   R   R   R   (   R   R   R   R   (    (    R
   t   test_elim_inversion_of_is_or_in    s     c         C   sa   d   } t |  } x! d D] } |  i | | j  q Wx! d D] } |  i | | j  q@ Wd  S(   Nc         C   s   d  |  S(   N(   t   NoneR   (   R   (    (    R
   R   ,   s    t   LOAD_GLOBALt
   LOAD_CONSTs   (None)(   R   (   R    s   (None)(   R   R   R   R   R   R   (   R   R   R   R   (    (    R
   t   test_none_as_constant*   s    	  c         C   sa   d   } t |  } x! d D] } |  i | | j  q Wx! d D] } |  i | | j  q@ Wd  S(   Nc           C   s   x q Wt  S(   Ni   (   t   list(    (    (    R
   R   7   s      R    R   t   JUMP_ABSOLUTE(   s
   LOAD_CONSTs   JUMP_IF_FALSE(   R#   (   R   R   R   R   R   R   (   R   R   R   R   (    (    R
   t   test_while_one5   s    	  c         C   si   xb d	 d
 d f D]Q \ } } t |  } |  i | | j  |  i d | j  |  i d | j  q Wd  S(   Ns   a, = a,R    s   a, b = a, bt   ROT_TWOs   a, b, c = a, b, ct	   ROT_THREEt   BUILD_TUPLEt   UNPACK_TUPLE(   s   a, = a,s
   LOAD_CONST(   s   a, b = a, bR%   (   s   a, b, c = a, b, cR&   (   R   R   R   R   R   R   (   R   R   R   R   (    (    R
   t   test_pack_unpackA   s     c         C   se   xU d d d d d f D]> \ } } t |  } |  i | | j  |  i d
 | j  q Wd   } d  S(   Ns	   a = 1,2,3s   ((1, 2, 3))s   ("a","b","c")s   (('a', 'b', 'c'))s   a,b,c = 1,2,3s   (None, 1, None)s   ((None, 1, None))s   ((1, 2), 3, 4)s   (((1, 2), 3, 4))R'   c        d   C   s8  d d d d d d d d d	 d
 d d d d d d d d d	 d
 d d d d d d d d d	 d
 d d d d d d d d d	 d
 d d d d d d d d d	 d
 d d d d d d d d d	 d
 d d d d d d d d d	 d
 d d d d d d d d d	 d
 d d d d d d d d d	 d
 d d d d d d d d d	 d
 gd f d  S(   Ni    i   i   i   i   i   i   i   i   i	   (    (    (    (    R
   t   crater[   s    (   s	   a = 1,2,3s   ((1, 2, 3))(   s   ("a","b","c")s   (('a', 'b', 'c'))(   s   a,b,c = 1,2,3s   ((1, 2, 3))(   s   (None, 1, None)s   ((None, 1, None))(   s   ((1, 2), 3, 4)s   (((1, 2), 3, 4))(   R   R   R   R   R   R   R*   (   R   R*   R   R   R   (    (    R
   t#   test_folding_of_tuples_of_constantsL   s     c         C   s^   d   } t |  } |  i d | j  |  i d | j  |  i | i   i d  d  d  S(   Nc         C   s   |  S(   N(   R   (   R   (    (    R
   R   k   s    R    s   (None)t   RETURN_VALUEi   (   R   R   R   R   R   t   assertEqualt   splitt   count(   R   R   R   (    (    R
   t   test_elim_extra_returni   s
    	(	   t   __name__t
   __module__R   R   R!   R$   R)   R+   R0   (    (    (    R
   R      s   		
				c         C   sͺ   d  k  } d k l } t f } | i |   |  os t | d  oc d  k } d  g d } xA t t |   D]- } | i |   | i   | i   | | <ql W| GHn d  S(   N(   s   test_supportt   gettotalrefcounti   (   R   t   testt   test_supportR   t   test_classest   run_unittestt   verboset   hasattrt   gcR   t   countst   xranget   lent   it   collectR3   (   R8   R5   R>   R   R:   R;   R6   (    (    R
   t	   test_maint   s    			 
t   __main__R8   (   R   R   t	   cStringIOR    t   unittestR   R   t   TestCaseR   R   R@   R1   t   True(   R@   R    RC   R   R   R   R   R   (    (    R
   t   ?   s   				
	a