
    chy                         d dl mZ d dlZd dlZd dlT  G d dej                  Z G d dej                  Zedk    r ej                     dS dS )	    check_syntax_errorN)*c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	
TokenTestsc                 j    d}|                      |dd           d}|                      |dd           d S )N   zbackslash for line continuationr   zbackslash ending commentassertEqualsselfxs     5  /home/conda/feedstock_root/build_artifacts/python-split_1761172146731/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.11/lib2to3/tests/data/py3_test_grammar.pytestBackslashzTokenTests.testBackslash   sH    !Q ABBB !Q :;;;;;    c                 ,   |                      t          d          t          d                     |                      dd           |                      dd           |                      dd           |                      dd           |                     t          t          d           ddlm} |dk    r|                      dd           |                     ddk               |                     ddk               |                     ddk               d	D ]:}	 t	          |          }# t          $ r | 	                    d
|z             Y 7w xY wd S |dk    r|                      dd           |                     ddk               |                     ddk               |                     ddk               dD ]:}	 t	          |          }# t          $ r | 	                    d
|z             Y 7w xY wd S | 	                    d|z             d S )Nr      i	   0x)maxsizei   l    )
21474836480o400000000000x100000000"0b10000000000000000000000000000000z(OverflowError on huge integer literal %rl    l             l    )92233720368547758080o20000000000000000000000x10000000000000000A0b100000000000000000000000000000000000000000000000000000000000000zWeird maxsize value %r)
r   typeassertRaisesSyntaxErrorevalsysr   assert_OverflowErrorfail)r   r   sr   s       r   testPlainIntegerszTokenTests.testPlainIntegers   sz   $s))T!WW---$$$$%%%%*m444&!$$$+tT222j  m^<<<LL*+++LLa(((LL:Q>???< N NNQAA$ N N NIIH1LMMMMMN	N N +++46OPPPLL1A5666LL+a/000LLY\]]^^^Y N NNQAA$ N N NIIH1LMMMMMNN N II.899999s$   D,,"EEG"G76G7c                 &    d}d}d}d}d}d}d}d}d S )Nr   r   l   ? l   
~l!]c l            l    r   s     r   testLongIntegerszTokenTests.testLongIntegersA   s.    *SSr   c                 J    d}d}d}d}d}d}d}d}d}d}d}d	}d
}d
}d}d}d}d S )N
   i[l   E#W i#    iw	  gffffff?@g      ?@gףp=
?Q	@  BgIae
Hg#;7r+   r   s     r   testUnderscoresInNumbersz#TokenTests.testUnderscoresInNumbersK   s]     r   c                 2    d}d}d}d}d}d}d}d}d}d}d}d S )Nr0   g     s@gjt?r1   gt =g  WHBg     F@r+   r   s     r   
testFloatszTokenTests.testFloatsa   s=    r   c                 6   d}d}|                      t          |          dk    o||k               d}d}|                      t          |          dk    o||k    ot          |          dk               d}d}|                      t          |          dk    o||k    ot          |          dk               d}d}|                      t          |          d	k    o||k               d
}d
}|                      t          |          d	k    o||k               d}d}|                     ||           d}|                     ||           d}|                     ||           d}|                     ||           dd }dd }|                     ||           d S )N r   '   '   ""   zdoesn't "shrink" does it   zdoes "shrink" doesn't itz2
The "quick"
brown fox
jumps over
the 'lazy' dog.
zhello \T)r%   lenordr   )r   r   ys      r   testStringLiteralszTokenTests.testStringLiteralso   s   BSVVq[%;Q!V<<<c!4<<A!(OQ(O3q66R<PPPT4<<A!(OQ(O3q66R<PPP('SVVr\,a1f---('SVVr\,a1f--- H!Q 	!Q 	!Q 	!Qt#4d#4#4q!Qr   c                     d}|                      |t          u            |                     t          t          d           d S )N.z.. .)r%   Ellipsisr!   r"   r#   r   s     r   testEllipsiszTokenTests.testEllipsis   s;    Q(]###+tV44444r   N)
__name__
__module____qualname__r   r)   r,   r2   r4   r@   rC   r+   r   r   r   r      s        < < <": ": ":HT T T  ,  (  (  ( T5 5 5 5 5r   r   c                       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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d Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d'S )(GrammarTestsc                 $    t          d          }d S )Nz	1, 0 or 1)r#   r   s     r   testEvalInputzGrammarTests.testEvalInput   s    r   c                    d } |              |d   |di i  d }d }|                      |j        j        d           |                      |j        j        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i ddi dd}
 |
d            |
dd            |
di ddi dd} |dd            |ddd            |d   |dgdR    |ddgdR    |d!i ddi d!d } |              |d            |dd            |d!   |dgd"R    |di ddi  |di 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i ddi dd(} |d            |dd            |ddd           dd)} |dd            |ddd            |dddd            |d'   |d!i ddi d!d*} |              |d            |dd            |ddd            |dgd+R    |di ddd# d!d,} |d            |dd            |ddd            |dddd            |d'   |ddgd-R    |dgd"R i ddi d!d.} |dd            |ddd            |dddd            |ddddd            |d'   |ddgd-R    |dgdR i d/di 	 t          dci d1di |                     d2           n# t
          $ r Y nw xY wd3 } |d45           d4d6d7} |ddd48            |ddd4d9:            |ddd4d9;           d4d8d<} |ddd4d4d9=            |ddd4d9d4>           d? }|                       |dgddgR ddd@dAddd@f           |                     t          t          dB           |                     t          t          dC           dDt          fdE}|                      |j
        dDt          i           d0t          fdF}|                      |j
        d0t          i           d0t          fdG}|                      |j
        d0t          i           d0t          fdH}|                      |j
        d0t          i           dddJ}|                      |j
        dIdi           dedK}|                      |j
        dddL           dfdgdO}|                      |j
        dddddP           dfddQdR	 	 	 dhdX}|                      |j
        dddddddVdWdY           dZ }|dDt          fd[            }|                      |j
        dDt          i           dfd\}dfd]	}dd^fd_
}dDt          ffd`}t          | da           t          | db           d S )iNc                      d S Nr+   r+   r   r   f1z$GrammarTests.testFuncdef.<locals>.f1         r   r+   c                     d S rM   r+   one_arguments    r   f2z$GrammarTests.testFuncdef.<locals>.f2   rO   r   c                     d S rM   r+   two	argumentss     r   f3z$GrammarTests.testFuncdef.<locals>.f3   rO   r   rQ   rU   c                     d S rM   r+   )one_args    r   a1z$GrammarTests.testFuncdef.<locals>.a1   rO   r   c                     d S rM   r+   )rV   argss     r   a2z$GrammarTests.testFuncdef.<locals>.a2   rO   r   c                      d S rM   r+   )rests    r   v0z$GrammarTests.testFuncdef.<locals>.v0   rO   r   c                     d S rM   r+   ar`   s     r   v1z$GrammarTests.testFuncdef.<locals>.v1   rO   r   c                     d S rM   r+   rd   br`   s      r   v2z$GrammarTests.testFuncdef.<locals>.v2   rO   r   r8   r	                     r   r   c                     d S rM   r+   rd   s    r   d01z%GrammarTests.testFuncdef.<locals>.d01   rO   r   r8   rd   c                     d S rM   r+   rd   rh   s     r   d11z%GrammarTests.testFuncdef.<locals>.d11   rO   r   rh   c                     d S rM   r+   rd   rh   cs      r   d21z%GrammarTests.testFuncdef.<locals>.d21   rO   r   r8   r	   rj   r	   rj   rj   ry   c                     d S rM   r+   ru   s     r   d02z%GrammarTests.testFuncdef.<locals>.d02   rO   r   r8   r	   r	   ru   c                     d S rM   r+   rx   s      r   d12z%GrammarTests.testFuncdef.<locals>.d12   rO   r   c                     d S rM   r+   rd   rh   ry   ds       r   d22z%GrammarTests.testFuncdef.<locals>.d22   rO   r   c                     d S rM   r+   rc   s     r   d01vz&GrammarTests.testFuncdef.<locals>.d01v   rO   r   )r8   r	   rj   rk   c                     d S rM   r+   rg   s      r   d11vz&GrammarTests.testFuncdef.<locals>.d11v  rO   r   c                     d S rM   r+   rd   rh   ry   r`   s       r   d21vz&GrammarTests.testFuncdef.<locals>.d21v  rO   r   c                     d S rM   r+   rg   s      r   d02vz&GrammarTests.testFuncdef.<locals>.d02v  rO   r   )r	   rj   rk   c                     d S rM   r+   r   s       r   d12vz&GrammarTests.testFuncdef.<locals>.d12v  rO   r   rj   rk   rl   c                     d S rM   r+   )rd   rh   ry   r   r`   s        r   d22vz&GrammarTests.testFuncdef.<locals>.d22v  rO   r   r   r   s   fooz/Bytes should not work as keyword argument namesc                     | S rM   r+   keys    r   pos0key1z*GrammarTests.testFuncdef.<locals>.pos0key1-  s    Sjr   d   r   )k2c                    | |||fS rM   r+   )p1p2k1r   s       r   pos2key2z*GrammarTests.testFuncdef.<locals>.pos2key2/  s    Br"RK-?r   )r      )r   r   )r   r   c                    | ||||fS rM   r+   )r   r   r   r   kwargs        r   pos2key2dictz.GrammarTests.testFuncdef.<locals>.pos2key2dict3  s    Br"UAR:Rr   )r   tokwarg1tokwarg2)r   r   r   c                  
    | |fS rM   r+   )r]   kwargss     r   fz#GrammarTests.testFuncdef.<locals>.f8  s    <r   r   r?   )r8   rj   rk   zf(1, *(2,3), 4)zf(1, x=2, *(3,4), x=5)returnc                     d S rM   r+   r   s    r   r   z#GrammarTests.testFuncdef.<locals>.f@  rO   r   c                     d S rM   r+   r   s    r   r   z#GrammarTests.testFuncdef.<locals>.fB  rO   r   c                      d S rM   r+   r   s    r   r   z#GrammarTests.testFuncdef.<locals>.fD  rO   r   c                      d S rM   r+   r   s    r   r   z#GrammarTests.testFuncdef.<locals>.fF  rO   r   r?   c                     d S rM   r+   r   s     r   r   z#GrammarTests.testFuncdef.<locals>.fH  rO   r   c                     d S rM   r+   r   s       r   r   z#GrammarTests.testFuncdef.<locals>.fJ  rO   r   )rh   ry   egc                     d S rM   r+   )rd   rh   ry   r   r   r   r   s          r   r   z#GrammarTests.testFuncdef.<locals>.fL  rO   r   )rh   ry   r   r   r.   )ijhr   k      c                    d S rM   r+   )rd   rh   ry   r   r   r   r   r   r   r   r   s              r   r   z#GrammarTests.testFuncdef.<locals>.fO  s    !Tr   )rh   ry   r   r   r   r   r   r   c                     | S rM   r+   r   s    r   nullz&GrammarTests.testFuncdef.<locals>.nullU  s    AXr   c                     d S rM   r+   r   s    r   r   z#GrammarTests.testFuncdef.<locals>.fV  s    $r   c                       S rM   r+   closures   r   r   z#GrammarTests.testFuncdef.<locals>.f\  s    r   c                     S rM   r+   )r   r   s    r   r   z#GrammarTests.testFuncdef.<locals>.f]  s    7Nr   r   c                     S rM   r+   )r   r   s    r   r   z#GrammarTests.testFuncdef.<locals>.f^  s    g~r   c                       S rM   r+   r   s   r   r   z#GrammarTests.testFuncdef.<locals>.f_  s    wr   z
f(*g(1=2))zf(**g(1=2))r   )r?   rj   )rh   r8   ry   r	   )rk   rl   )rh   r8   ry   r	   r   rj   r   rm   )rh   r8   ry   r	   r   rj   r   rm   r   rn   r   r   r   r   r   r   )r   __code__co_varnamesstrr'   	TypeErrorr!   r"   r#   list__annotations__intfloatr   )r   rN   rS   rX   r[   r^   ra   re   ri   rr   rv   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s                             @r   testFuncdefzGrammarTests.testFuncdef   s
    	

B
B""""$$$"+13DEEE"+13GHHH   !!!

1
1
1a
1a			

1
1
1Q
1Qq1Qq1Q
1
1
1Q
1Qq			
1Qq1Qq1Q
1Q
1Qq			
1Qq
1Qq1Qq1QAT

s1gAAq			#a    Aq			Aq!YAAq4SGAAq			VA#aAA""""AAq			Aq!%%%%Aq			Aq!Aq!Q""""QQ


ldAw%%%%QQ


Q1((((Q


Q1Q1alc1X''''QQ


Q1Q  QQ   ****QQ


Q1Q1alQIQ""""#q"""----Q


Q1Q1aQ1alQIQ$$$$C8$$$	I##q{### IIGHHHH  	 	 	D	
 	)((S'*?????A#A##&&&&A##&&&&'*RRRRRQqCc::::Qq#ss;;;;	  	  	 !!A1aV11q111I9:NN4D 	E 	E 	E+t->???+t-EFFF 	D!+h-=>>>!+c3Z888!+c3Z888%!+c5\:::!+c1X666####!+11-=-=>>>55555!+ !::	< 	< 	<	"qb 	" 	"	"	" 	" 	" 	"!+ ! "b2 2	3 	3 	3 		D 
!+h-=>>> """"""%%%%%%%&3&&&&&& 	4...4/////s   P> >
Q
Qc                 >   d }|                       |            d           d }d }|                       |            g d           ddfdfd	}|                       |            d           dd}|                       |dd
          d           |                       |dd
d          d           t          | d           t          | d           ddd}|                       |dd
          d           |                       |dd
d          d           d S )Nc                      dS )Nr   r+   r+   r   r   <lambda>z*GrammarTests.testLambdef.<locals>.<lambda>g  s    a r   r   c                  &    t           t                   S rM   )rd   r   r+   r   r   r   z*GrammarTests.testLambdef.<locals>.<lambda>i  s
    ad r   c                      d dD             S )Nc                     g | ]}d |k     	S r   r+   .0r   s     r   
<listcomp>z>GrammarTests.testLambdef.<locals>.<lambda>.<locals>.<listcomp>j  s    111q1u111r   )rj   r   r+   r+   r   r   r   z*GrammarTests.testLambdef.<locals>.<lambda>j  s    11j111 r   )r   r8   r   r8   c                     | S rM   r+   )zs    r   r   z*GrammarTests.testLambdef.<locals>.<lambda>l  s     r   c                      |             S rM   r+   )r?   s    r   r   z*GrammarTests.testLambdef.<locals>.<lambda>l  s    AACC r   c                      |             S rM   r+   r   s    r   r   z*GrammarTests.testLambdef.<locals>.<lambda>l  s    !!## r   r	   c                     | |z   |z   S rM   r+   )r   r?   r   s      r   r   z*GrammarTests.testLambdef.<locals>.<lambda>n  s    q1uqy r   rl   rj   rm   zlambda x: x = 2zlambda (None,): None   r   c                    | |z   |z   S rM   r+   )r   r?   r   s      r   r   z*GrammarTests.testLambdef.<locals>.<lambda>s  s    1Q3q5 r      r.   r/   rs   r   )r   r   )r   l1l2l3l4l5l6s          r   testLambdefzGrammarTests.testLambdefe  sU   Z""$$"""]11""$$			***#1>>777===""$$"""(((""Q((A&&&""Q1++q)))4!23334!7888!((((""Qq''6***""Qq2,,,/////r   c                 &    d}~d } |             d S )Nr8   c                      d} ~ d S Nr8   r+   r   s    r   fooz(GrammarTests.testSimpleStmt.<locals>.foo~  s    AQQQr   r+   )r   r   r   s      r   testSimpleStmtzGrammarTests.testSimpleStmt{  s)    	  	  	  	r   c                     	 	 d}d}dx}x}}d\  }}}dx}x\  }}}x\  }}}}t          | d           t          | d           d S )Nr8   r{   )r8   r	   )rj   rk   z	x + 1 = 1za + 1 = b + 2r   )	r   r   r?   r   abcrd   rh   ry   xyzs	            r   testExprStmtzGrammarTests.testExprStmt  sr    	A1a(444gaA41a#4---411111r   c                 .    g d}|\  }}}|||f}~~~~~d S )Nr{   r+   )r   r   r   r?   r   r   s         r   testDelStmtzGrammarTests.testDelStmt  s1    gg1aAgq1cccr   c                     d S rM   r+   r   s    r   testPassStmtzGrammarTests.testPassStmt  s    r   c                     d S rM   r+   r   s    r   testBreakStmtzGrammarTests.testBreakStmt  s    r   c                     d}|rd}d}|sd}	 #  d}Y nxY w||dk    r|                      |           d}|sd}	 	 d}	# d}w xY w|dk    r|                      |           d S d S )Nr8   r   r6   okz&continue failed to continue inside tryz'continue inside try called except blockzfinally block not calledr'   )r   r   msgs      r   testContinueStmtzGrammarTests.testContinueStmt  s     Q 	@C@@?  	@ $;;IIcNNN 	,Cd



$;;IIcNNNNN ;s
   Ac                 (     d fd	} |             d S )Nr8   r   c                     d}|r |dz  }	 | r|dk    r| dz  } n|dz  }#   xY w|dk    s|dk    r                     d           d S d S )Nr	   r8   z1continue then break in try/except in loop broken!r   )extra_burning_oilcount	big_hippor   s      r   
test_innerz9GrammarTests.test_break_continue_loop.<locals>.test_inner  s    I 	
( Y!^^)Q.)NIqyyINN		MNNNNN +Ns       #)r8   r   r+   )r   r  s   ` r   test_break_continue_loopz%GrammarTests.test_break_continue_loop  s8    	O 	O 	O 	O 	O 	O 	
r   c                     d }d }ddgfd} |              |            } |            }t          | d           d S )Nc                      d S rM   r+   r+   r   r   g1z#GrammarTests.testReturn.<locals>.g1  s    &&r   c                      dS r   r+   r+   r   r   g2z#GrammarTests.testReturn.<locals>.g2  s    r   r	   rj   c                      dg R S r   r+   )return_lists   r   g3z#GrammarTests.testReturn.<locals>.g3  s    [(r   zclass foo:return 1r   )r   r  r	  r  r   x3r  s         @r   
testReturnzGrammarTests.testReturn  se    !f(((((
BDDRTT4!566666r   c                     d }ddgfd}fd} |            } |            } |            }t          | d           t          | d           d S )Nc               3      K   dV  d S r   r+   r+   r   r   r  z"GrammarTests.testYield.<locals>.g1  s      '''''r   r	   rj   c               3      K   dg R V  d S r   r+   
yield_lists   r   r	  z"GrammarTests.testYield.<locals>.g2  s       J&&&&&r   c               3   6   K   t                     E d {V  d S rM   )iterr  s   r   r  z"GrammarTests.testYield.<locals>.g3  s,      T*-----------r   zclass foo:yield 1zdef g4(): yield from *ar   )r   r  r	  r  x1x2r  r  s          @r   	testYieldzGrammarTests.testYield  s|    V
&&&&&-----RTTRTTRTT4!45554!:;;;;;r   c                 p    t          d          # t           $ r Y nw xY wt          # t          $ r Y d S w xY w)Nzjust testing)RuntimeErrorKeyboardInterruptr   s    r   	testRaisezGrammarTests.testRaise  sF    ///!!!TT!$$ &&&$$$&s    
' 
55c                 f    dd l }dd l}dd l }ddlm} ddlm} ddl m}m} ddl m}m} ddl m}m} d S )Nr   )time)pathargv)r$   r  r  r   )r   r$   r  r  r   s        r   
testImportzGrammarTests.testImport  s    


 	#"""""""$$$$$$$$%%%%%%%%%%r   c                     d S rM   r+   r   s    r   
testGlobalzGrammarTests.testGlobal  rO   r   c                     ddfd}d S )Nr   c                      d S rM   r+   r   s   r   r   z$GrammarTests.testNonlocal.<locals>.f  s      r   r+   )r   r   r   r?   s     @@r   testNonlocalzGrammarTests.testNonlocal  s6    	 	 	 	 	 	 	 	r   c                     	 	 d sJ 	 	 J d            # t          $ r,}|                     |j        d         d           Y d }~d S d }~ww xY w)Nr8   c                     | S rM   r+   r   s    r   r   z)GrammarTests.testAssert.<locals>.<lambda>  s     r   c                     | dz   S r   r+   r   s    r   r   z)GrammarTests.testAssert.<locals>.<lambda>  s
    1Q3 r   r   r   )r'   AssertionErrorr   r]   )r   r   s     r   
testAssertzGrammarTests.testAssert  sv    zz	CeOO1 	0 	0 	0afQi/////////	0s   
 
A
!AA
c                     	 	 	 	 	 	 	 	 d S rM   r+   r   s    r   testIfzGrammarTests.testIf%  s)    					dr   c                 B    	 	 	 d}	 d}|                      |d           d S )Nr   r8   r	   r
   r   s     r   	testWhilezGrammarTests.testWhile2  s<    	 	 A!Qr   c                 
   dD ]}dD ]\  }}}	  G d d          }d} |d          D ]}||z   }|dk    r|                      d           g }d	D ]\  }|                    |           |                     |g d           d S )
Nr{   r+   c                        e Zd Zd Zd Zd ZdS )%GrammarTests.testFor.<locals>.Squaresc                 "    || _         g | _        d S rM   )maxsofar)r   r4  s     r   __init__z.GrammarTests.testFor.<locals>.Squares.__init__G  s    


r   c                 *    t          | j                  S rM   )r=   r5  r   s    r   __len__z-GrammarTests.testFor.<locals>.Squares.__len__J  s    c$*oo5r   c                     d|cxk    r| j         k     s	n t          t          | j                  }||k    r(| j                            ||z             |dz   }||k    (| j        |         S )Nr   r8   )r4  
IndexErrorr=   r5  append)r   r   ns      r   __getitem__z1GrammarTests.testFor.<locals>.Squares.__getitem__K  sz    A((((((((
*:
OO1ffJ%%ac***!A 1ff z!}$r   N)rD   rE   rF   r6  r8  r=  r+   r   r   Squaresr2  F  s=              655% % % % %r   r>  r   r.   i  zfor over growing sequence)rs   r   r}   )r'   r;  assertEqual)r   r   r   r   r>  r<  r   results           r   testForzGrammarTests.testForA  s    AA 	 	GAq!!	% 	% 	% 	% 	% 	% 	% 	% %%A!A#aa88II1222$ 	 	BAMM!+++++r   c                 R   	 ddz   n# t           $ r Y nw xY wddz   n6# t          $ r Y n*t          $ r
}Y d }~nd }~wt          $ r
}Y d }~n
d }~w Y nxY wddz   n# t          t          t           f$ r Y nw xY wddz   n$# t          t          t           f$ r
}Y d }~nd }~ww xY w	 d S # w xY wNr8   r   )ZeroDivisionErrorEOFErrorr   r  )r   r   s     r   testTryzGrammarTests.testTry\  s   	aCC  ! 	 	 	D	 qSS
 	 %%%(((DDDDDqSSS)%67====qSSS)%67DDDDsO    
 
A	AA
AA A43A47A= =BB$B&c                     	 	 	 	 	 	 d S rM   r+   r   s    r   	testSuitezGrammarTests.testSuites  s    		 Dr   c                     	 	 	 	 	 d S rM   r+   r   s    r   testTestzGrammarTests.testTest  s     	"48Dr   c                    	 ddk    }ddk    r	 ddk    r	 ddk     r	 ddk    r	 ddk    r	 ddk    r	 ddu r	 ddur	 ddv r	 ddvr	 ddcxk     r6dcxk    r/dcxk    r(dcxk    r!dcxk    rdcxk    rdcxv rdcxvr	dcxu rdurn d S d S d S )Nr8   r+   r+   r   s     r   testComparisonzGrammarTests.testComparison  s    !V664664q55$q55$664664664A::t77DB;;qDDDD1DDDDDDDDQDDDD!DDDDqDDDDADDDDQDDDD!DDDD1DDDDDDddDDr   c                     d}d}d}d S rC  r+   r   s     r   testBinaryMaskOpszGrammarTests.testBinaryMaskOps  s    r   c                     d}d}d}d S )Nr	   r   r8   r+   r   s     r   testShiftOpszGrammarTests.testShiftOps  s    r   c                     d}d}d}d}d S )Nr8   r	   r   r+   r   s     r   testAdditiveOpszGrammarTests.testAdditiveOps  s    r   c                     d}d}d}d}d S )Nr8         ?r   g        r+   r   s     r   testMultiplicativeOpsz"GrammarTests.testMultiplicativeOps  s    r   c                     d}d}d}d}d}d S )Nr8   r   rT  r+   r   s     r   testUnaryOpszGrammarTests.testUnaryOps  s    #!r   c                    dd l }dd l}|j        d         }|                                }|j        d                                         }d}|d         }|d         }|dd         }|d d         }|dd          }|d d          }|dd          }|d d         }|dd         }i }d	|d	<   d
|d<   d|d<   d|d<   t	          |          }|                    d            |                     t          |          d           d S )Nr   r  01234r   rl   r8   r	   rs   rj   r   rk   r{   c                 4    t          | t                    r| ndS )Nr+   )
isinstancetupler   s    r   r   z,GrammarTests.testSelectors.<locals>.<lambda>  s    *Q"6"6>QQB r   r   z[1, (1,), (1, 2), (1, 2, 3)])r$   r  r  modulesr   sortr   r   )	r   r$   r  ry   r   rd   r(   r   Ls	            r   testSelectorszGrammarTests.testSelectors  s/    	HQKIIKKK$$&&aDbEacFbqbEabbEaaaDbccFcrcFbeH !"#%GG	>>???#a&&"@AAAAAr   c                     d}d}dddf}g }dg}dg}dddg}g }i }ddi}ddi}ddi}ddd}ddd}dddddd	d
}dh}ddh}h d}h d}|}d}d}d S )Nr8   r	   rj   onerV   )rf  rV   rk   rl   rm   )rf  rV   threefourfivesix>   rf  rV   rg  >   r	   rj   rk   r   {   r+   r   s     r   	testAtomszGrammarTests.testAtoms  s     !QCM!QAJAKQ$a  a!!a!Q!LLGAK###JJr   c                      G d d          } G d d          } G d d|          } G d d|          } G d	 d
|||          } G d d          }d }| G d d                      }d S )Nc                       e Zd ZdS )$GrammarTests.testClassdef.<locals>.BNrD   rE   rF   r+   r   r   Bro              r   rq  c                       e Zd ZdS )%GrammarTests.testClassdef.<locals>.B2Nrp  r+   r   r   B2rt    rr  r   ru  c                       e Zd ZdS )%GrammarTests.testClassdef.<locals>.C1Nrp  r+   r   r   C1rw     rr  r   rx  c                       e Zd ZdS )%GrammarTests.testClassdef.<locals>.C2Nrp  r+   r   r   C2rz    rr  r   r{  c                       e Zd ZdS )$GrammarTests.testClassdef.<locals>.DNrp  r+   r   r   Dr}    rr  r   r~  c                        e Zd Zd Zd Zd ZdS )$GrammarTests.testClassdef.<locals>.Cc                     d S rM   r+   r   s    r   meth1z*GrammarTests.testClassdef.<locals>.C.meth1  rO   r   c                     d S rM   r+   )r   args     r   meth2z*GrammarTests.testClassdef.<locals>.C.meth2  rO   r   c                     d S rM   r+   )r   r[   r^   s      r   meth3z*GrammarTests.testClassdef.<locals>.C.meth3  rO   r   N)rD   rE   rF   r  r  r  r+   r   r   Cr    s+        !!!&&&)))))r   r  c                     | S rM   r+   r   s    r   class_decoratorz2GrammarTests.testClassdef.<locals>.class_decorator  s    qr   c                       e Zd ZdS )$GrammarTests.testClassdef.<locals>.GNrp  r+   r   r   Gr    s        r   r  r+   )	r   rq  ru  rx  r{  r~  r  r  r  s	            r   testClassdefzGrammarTests.testClassdef  s         B   	* 	* 	* 	* 	* 	* 	* 	* 	)((	 
r   c                 V    g d}|                      d |D             dddd           d S )Nr{   c                     i | ]}||d z   	S rs   r+   r   r   s     r   
<dictcomp>z.GrammarTests.testDictcomps.<locals>.<dictcomp>  s    ...A!AaC...r   r	   rj   rk   r?  )r   numss     r   testDictcompszGrammarTests.testDictcomps  sB     yy.....A!0B0BCCCCCr   c           	         	 g d}g dg d}                      d |D             g d                                 d |D             g d                                 d |D             g d	                                 fd
|D             g d                                 fd|D             g d                                 d t          d          D             dgddgg dg dg dg           d }                       ||          g d            fd} |             t           d           t           d           g d}g dg d		fd|D             }                      |g d           d S )N)r8   r	   rj   rk   rl   )AppleBananaCoconut)z  Applez Banana zCoco  nut  c                 6    g | ]}|                                 S r+   )strip)r   r(   s     r   r   z.GrammarTests.testListcomps.<locals>.<listcomp>  s     222!''))222r   )r  r  z	Coco  nutc                     g | ]}d |z  S r}   r+   r   s     r   r   z.GrammarTests.testListcomps.<locals>.<listcomp>  s    ...A!a%...r   )rj   rm   r   r      c                     g | ]
}|d k    |S r   r+   r   s     r   r   z.GrammarTests.testListcomps.<locals>.<listcomp>  s    333QUU!UUUr   r   c                 "    g | ]}D ]}||fS r+   r+   r   r   r(   strss      r   r   z.GrammarTests.testListcomps.<locals>.<listcomp>  s*    ===Q==11a&====r   ))r8   r  r8   r  r8   r  )r	   r  r	   r  r	   r  )rj   r  rj   r  rj   r  )rk   r  rk   r  rk   r  )rl   r  rl   r  rl   r  c                 6    g | ]}d  D             D ]}||fS )c                     g | ]}d |v |	S )r<  r+   )r   r   s     r   r   z9GrammarTests.testListcomps.<locals>.<listcomp>.<listcomp>%  s    8U8U8UqCSTHHHHHr   r+   r  s      r   r   z.GrammarTests.testListcomps.<locals>.<listcomp>%  s9    VVVQ8U8UD8U8U8UVV11a&VVVVr   )
r  r  r  r  r  r  r  r  r  r  c                 &    g | ]} d  |          S )c                 @      fdt           dz             D             S )Nc                     g | ]}|z  S r+   r+   )r   r   rd   s     r   r   zKGrammarTests.testListcomps.<locals>.<listcomp>.<lambda>.<locals>.<listcomp>)  s    $>$>$>aQT$>$>$>r   r8   rangerq   s   `r   r   z7GrammarTests.testListcomps.<locals>.<listcomp>.<lambda>)  s&    $>$>$>$>51::$>$>$> r   r+   )r   r   s     r   r   z.GrammarTests.testListcomps.<locals>.<listcomp>)  s'    UUUq>>>BBUUUr   rl   r8   )r8   r	   rk   )r8   rj   r      )r8   rk      @      c                     d | D             S )Nc                 :    g | ]}|d k    d|cxk     odk     nc S )r	   r   rj   r+   r   s     r   r   zDGrammarTests.testListcomps.<locals>.test_in_func.<locals>.<listcomp>-  s1    222!AEEAIIIIAIIIIEEEr   r+   )ls    r   test_in_funcz0GrammarTests.testListcomps.<locals>.test_in_func,  s    22q2222r   )FFFc                  Z                          d dD             ddgddgddgg           d S )	Nc                 0    g | ]}d  ||dz   fD             S )c                     g | ]}|S r+   r+   r   r?   s     r   r   zTGrammarTests.testListcomps.<locals>.test_nested_front.<locals>.<listcomp>.<listcomp>2  s    555Qq555r   r8   r+   r   s     r   r   zIGrammarTests.testListcomps.<locals>.test_nested_front.<locals>.<listcomp>2  s/    GGG!551a!e*555GGGr   )r8   rj   rl   r8   r	   rj   rk   rl   rm   r  r   s   r   test_nested_frontz5GrammarTests.testListcomps.<locals>.test_nested_front1  sL    GGwGGG !fq!fq!f57 7 7 7 7r   z"[i, s for i in nums for s in strs]z[x if y]))r8   Boeing)r	   Ford)rj   
Macdonalds))r.   Airliner)r   Engine)   Cheeseburger))r8   r.   )r8   r   )r	   r   )rj   r  c                 V    g | ]%\  }}D ]\  }}D ]\  }}||k    ||k    ||f&S r+   r+   )	r   snosnamepnopnamesp_snosp_pnopartssupparts	          r   r   z.GrammarTests.testListcomps.<locals>.<listcomp>J  sl     
 
 
e"'
 
 3(/	
 
 %VVF]]sf}}	 %. (5}}}}r   ))r  r  )r  r  )r  r  )r  r  )r?  r  r   )
r   r  spcsr  r  	suppliersr   r  r  r  s
   `      @@@r   testListcompszGrammarTests.testListcomps  s   ---55522T2224T4T4TUUU.....0A0A0ABBB33T333YYY???====$===G G G	H 	H 	H 	VVVV$VVV9 9 9	: 	: 	: 	UUERSHHUUU#1vyyy---ATATATU	W 	W 	W	3 	3 	3 	d++-B-B-BCCC	7 	7 	7 	7 	7 	4!EFFF4,,,
 
 
	
 
 

 
 

 
 
 
 
 )
 
 
 	 = = = 	> 	> 	> 	> 	>r   c           
      >	   d t          d          D             }|                     t          |          d t          d          D                        	 t          |           |                     d           n# t          $ r Y nw xY wd	 fdD             }t          |           |                     d           n# t
          $ r Y nw xY w|                     t          d d	D                       d
 d	D                        |                     t          d dD                       d dD                        d t          d          D             d d D             D             }|                     t          |          t          d t          d          D                                  |                     t          d t          d          D                       t          d t          d          D                                  |                     t          d t          d          D                       t          d t          d          D                                  |                     t          d d t          d          D             D                       t          d t          d          D                                  |                     t          d d d t          d          D             D             D                       t          d t          d          D                                  |                     t          d d d t          d          D             D             D                       t          d  t          d          D                                  |                     t          d! d" d# t          d          D             D             D                       t          d$ t          d          D                                  |                     t          d% d& d' t          d          D             D             D                       d(           t          | d)           t          | d*           d S )+Nc              3   H   K   | ]}d  t          d          D             V  dS )c                     g | ]}|S r+   r+   r   s     r   r   z6GrammarTests.testGenexps.<locals>.<genexpr>.<listcomp>W  s    ###Aa###r   r.   Nr  r   s     r   	<genexpr>z+GrammarTests.testGenexps.<locals>.<genexpr>W  s7      66##r###666666r   r8   c                     g | ]}|S r+   r+   r   s     r   r   z,GrammarTests.testGenexps.<locals>.<listcomp>X  s    "8"8"81"8"8"8r   r.   z&should produce StopIteration exceptionc              3      K   | ]}V  d S rM   r+   )r   r   rd   s     r   r  z+GrammarTests.testGenexps.<locals>.<genexpr>a  s      qr   zshould produce TypeErrorc              3   (   K   | ]}d D ]}||fV  	dS )abcdNr+   r   r   r?   s      r   r  z+GrammarTests.testGenexps.<locals>.<genexpr>g  s3      EEfEEq!fEEEEEEEr   r  c                      g | ]}d D ]}||fS )r  r+   r  s      r   r   z,GrammarTests.testGenexps.<locals>.<listcomp>g  s,    GoGoGoSThnGoGocdAGoGoGoGor   c              3   (   K   | ]}d D ]}||fV  	dS )xyNr+   r  s      r   r  z+GrammarTests.testGenexps.<locals>.<genexpr>h  s3      AADAAqq!fAAAAAAAr   abc                      g | ]}d D ]}||fS )r  r+   r  s      r   r   z,GrammarTests.testGenexps.<locals>.<listcomp>h  s+    CgCgCgqbfCgCg]^QFCgCgCgCgr   c                     g | ]}|S r+   r+   r   s     r   r   z,GrammarTests.testGenexps.<locals>.<listcomp>j  s    """1Q"""r   c              3      K   | ]}|V  d S rM   r+   r   s     r   r  z+GrammarTests.testGenexps.<locals>.<genexpr>k  s"      ''1Q''''''r   c              3      K   | ]}|V  d S rM   r+   r  s     r   r  z+GrammarTests.testGenexps.<locals>.<genexpr>k  s      qr   c                     g | ]}|S r+   r+   r   s     r   r   z,GrammarTests.testGenexps.<locals>.<listcomp>l  s    %;%;%;Aa%;%;%;r   c              3       K   | ]	}|d z  V  
dS r	   Nr+   r   s     r   r  z+GrammarTests.testGenexps.<locals>.<genexpr>n  s&      55aQT555555r   c                     g | ]}|d z  S r   r+   r   s     r   r   z,GrammarTests.testGenexps.<locals>.<listcomp>n  s    ;T;T;TQAqD;T;T;Tr   c              3   *   K   | ]}|d z  ||z  V  dS r  r+   r   s     r   r  z+GrammarTests.testGenexps.<locals>.<genexpr>o  s/      ;;Qqs;QqS;;;;;;r   c                 "    g | ]}|d z  ||z  S r   r+   r   s     r   r   z,GrammarTests.testGenexps.<locals>.<listcomp>o  s(    A`A`A`!\]^_\_A`!A#A`A`A`r   c              3      K   | ]}|V  d S rM   r+   r   s     r   r  z+GrammarTests.testGenexps.<locals>.<genexpr>p  s"      ??1Q??????r   c              3      K   | ]}|V  d S rM   r+   r  s     r   r  z+GrammarTests.testGenexps.<locals>.<genexpr>p  s"      (>(>q(>(>(>(>(>(>r   c                     g | ]}|S r+   r+   r   s     r   r   z,GrammarTests.testGenexps.<locals>.<listcomp>p  s    E[E[E[AaE[E[E[r   c              3      K   | ]}|V  d S rM   r+   r   s     r   r  z+GrammarTests.testGenexps.<locals>.<genexpr>q  "      LL1QLLLLLLr   c              3      K   | ]}|V  d S rM   r+   r  s     r   r  z+GrammarTests.testGenexps.<locals>.<genexpr>q  s"      (K(Kq(K(K(K(K(K(Kr   c              3      K   | ]}|V  d S rM   r+   r   r   s     r   r  z+GrammarTests.testGenexps.<locals>.<genexpr>q  "      4J4J1Q4J4J4J4J4J4Jr   c                     g | ]}|S r+   r+   r   s     r   r   z,GrammarTests.testGenexps.<locals>.<listcomp>q      RhRhRhYZSTRhRhRhr   c              3      K   | ]}|V  d S rM   r+   r   s     r   r  z+GrammarTests.testGenexps.<locals>.<genexpr>r  r  r   c                     g | ]}|S r+   r+   r  s     r   r   z,GrammarTests.testGenexps.<locals>.<listcomp>r  s    (K(K(Kq(K(K(Kr   c              3      K   | ]}|V  d S rM   r+   r  s     r   r  z+GrammarTests.testGenexps.<locals>.<genexpr>r  r  r   c                     g | ]}|S r+   r+   r   s     r   r   z,GrammarTests.testGenexps.<locals>.<listcomp>r  r  r   c              3      K   | ]}|V  dS TNr+   r   s     r   r  z+GrammarTests.testGenexps.<locals>.<genexpr>s  s"      \\1Q\\\\\\r   c              3      K   | ]}|V  d S rM   r+   r  s     r   r  z+GrammarTests.testGenexps.<locals>.<genexpr>s  s"      (S(Sq(S(S(S(S(S(Sr   c              3      K   | ]}|V  dS r  r+   r  s     r   r  z+GrammarTests.testGenexps.<locals>.<genexpr>s  "      4R4R1Q4R4R4R4R4R4Rr   c                     g | ]}|S r+   r+   r   s     r   r   z,GrammarTests.testGenexps.<locals>.<listcomp>s  s    bxbxbxijcdbxbxbxr   c              3      K   | ]}|V  dS r  r+   r   s     r   r  z+GrammarTests.testGenexps.<locals>.<genexpr>t  s"      ee1Qeeeeeer   c              3      K   | ]}dS )FNr+   r  s     r   r  z+GrammarTests.testGenexps.<locals>.<genexpr>t  s      (\(\q(\(\(\r   c              3      K   | ]}|V  dS r  r+   r  s     r   r  z+GrammarTests.testGenexps.<locals>.<genexpr>t  r  r   r   zfoo(x for x in range(10), 100)zfoo(100, x for x in range(10)))	r  r?  nextr'   StopIterationr   r   sumr   )r   r   rh   rd   s      @r   testGenexpszGrammarTests.testGenexpsU  s   66U1XX666a"8"8eBii"8"8"8999	GGGII>???? 	 	 	D	 	AAGGGII01111 	 	 	D	 	EEfEEEEEGoGoX^GoGoGopppAAdAAAAACgCgTXCgCgCghhh""b		"""''A'''Q%;%;r%;%;%;!<!<===5559955555s;T;T%PR));T;T;T7U7UVVV;;%));;;;;SA`A`uUWyyA`A`A`=a=abbb??(>(>E"II(>(>(>?????E[E[QVWYQZQZE[E[E[A\A\]]]LL(K(K4J4Jb		4J4J4J(K(K(KLLLLLcRhRh^cdf^g^gRhRhRhNiNijjjLL(K(K4J4Jb		4J4J4J(K(K(KLLLLLcRhRh^cdf^g^gRhRhRhNiNijjj\\(S(S4R4Rb		4R4R4R(S(S(S\\\\\^abxbxnstvnwnwbxbxbx^y^yzzzee(\(\4R4Rb		4R4R4R(\(\(\eeeeeghiii4!ABBB4!ABBBBBs$   $A; ;
BB2C 
CCc                    dd t                    D             }d|                     t          t          |                    d           ddfdt                    D             }dd|                     d t          d          D             t          |                     |                     d t          d          D             g d	           |                     t          d
 t          d          D                       g d	           |                     d dD             g d           |                     t          d dD                       g d           d S )Nr.   c              3      K   | ]}|V  d S rM   r+   r  s     r   r  z9GrammarTests.testComprehensionSpecials.<locals>.<genexpr>z  s"      ))1Q))))))r   rl   Fc              3   H   K   | ]}t                    D ]}||fV  	d S rM   r  )r   r   r   tr   s      r   r  z9GrammarTests.testComprehensionSpecials.<locals>.<genexpr>~  s?      OO!1OeAhhOO1OOOOOOOr   Tc                 :    g | ]}t          d           D ]}||fS rl   r  )r   r   r   s      r   r   z:GrammarTests.testComprehensionSpecials.<locals>.<listcomp>  s/    EEEAE!HHEEq1Q%EEEEr   c                 &    g | ]}|d z  |dz  |S r|   r+   r   s     r   r   z:GrammarTests.testComprehensionSpecials.<locals>.<listcomp>  s*    CCC1q5CAEC1CCCr   )r8   rl   rn   c              3   .   K   | ]}|d z  |dz  |V  dS )r	   rj   Nr+   r   s     r   r  z9GrammarTests.testComprehensionSpecials.<locals>.<genexpr>  s4      EEAa!eEq1uEaEEEEEEr   c                     g | ]\  }|S r+   r+   r   s     r   r   z:GrammarTests.testComprehensionSpecials.<locals>.<listcomp>  s    999!999r   ))rk   r  )rm   )rk   rl   rm   c              3      K   | ]\  }|V  	d S rM   r+   r   s     r   r  z9GrammarTests.testComprehensionSpecials.<locals>.<genexpr>  s$      ==BAa======r   ))rn   )ro   )r   )rn   ro   r   )r  r?  r=   r   )r   r   r	  r   s     @@r   testComprehensionSpecialsz&GrammarTests.testComprehensionSpecialsx  s{   ))a)))q1T!WWr*** EOOOOOuQxxOOO14qEErEEEtAwwOOO 	CCeBiiCCCYYYOOOEErEEEEEyyyQQQ 	99&8999999EEE==*<=====yyyIIIIIr   c                     G d dt                     } |            5  	 d d d            n# 1 swxY w Y    |            5 }	 d d d            n# 1 swxY w Y    |            5 \  }}	 d d d            n# 1 swxY w Y    |            5   |            5  	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y    |            5 } |            5 }	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y    |            5 } |            5  	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd Zd ZdS )1GrammarTests.test_with_statement.<locals>.managerc                     dS )Nr   r+   r   s    r   	__enter__z;GrammarTests.test_with_statement.<locals>.manager.__enter__  s    vr   c                     d S rM   r+   )r   r]   s     r   __exit__z:GrammarTests.test_with_statement.<locals>.manager.__exit__  s    r   N)rD   rE   rF   r  r  r+   r   r   managerr    s2              r   r  )object)r   r  r   r?   s       r   test_with_statementz GrammarTests.test_with_statement  s   	 	 	 	 	f 	 	 	 WYY 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	WYY 	!	 	 	 	 	 	 	 	 	 	 	 	 	 	 	WYY 	&1a	 	 	 	 	 	 	 	 	 	 	 	 	 	 	WYY 	 			 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	WYY 	!WWYY 	!	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	WYY 	!WWYY 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   ,00AAA$A55A9<A9
B:B#B:#B'	'B:*B'	+B::B>B>C?C(C?(C,	,C?/C,	0C??DDED-!E-D1	1E4D1	5EE	E	c                 4   d }|                      d d d fD             dg           |                      d d d fD             dg           |                      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 S )Nc                 .    t          t                     |S )z@helper to check that evaluation of expressions is done correctly)printr   )r   rets     r   
_checkevalz/GrammarTests.testIfElseExpr.<locals>._checkeval  s    !HHHJr   c                 6    g | ]} |             |            S r+   r+   r   s     r   r   z/GrammarTests.testIfElseExpr.<locals>.<listcomp>  s)    NNN1N1133NNNr   c                      dS )NTr+   r+   r   r   r   z-GrammarTests.testIfElseExpr.<locals>.<lambda>  s     r   c                      dS )NFr+   r+   r   r   r   z-GrammarTests.testIfElseExpr.<locals>.<lambda>  s    u r   Tc                 :    g | ]} |d            |d           S )Fr+   r   s     r   r   z/GrammarTests.testIfElseExpr.<locals>.<listcomp>  s2    {{{qrqrsxqyqy{11U88{{{r   c                     | rdndS )NFTr+   r   s    r   r   z-GrammarTests.testIfElseExpr.<locals>.<lambda>  s    8L r   c                     | rdndS )NTFr+   r   s    r   r   z-GrammarTests.testIfElseExpr.<locals>.<lambda>  s    `aXlX\X\gl r   r8   rl   zcheck 1r   zcheck 2rm   zcheck 3r	   rj   zcheck 4zcheck 5zcheck 6Frn   r   rk   g      @r  )r   r  s     r   testIfElseExprzGrammarTests.testIfElseExpr  s   	 	 	 	NN}}(ENNNQUPVWWW{{.L.LNlNl-m{{{  C  ~D  	E  	E  	E!CCCQCCCA222a!444!444!aHHH!]^___qaHHH%e444!a000%a000%a000%b111%a000!a00000r   N))rD   rE   rF   rJ   r   r   r   r   r   r   r   r   r  r  r  r  r!  r#  r&  r+  r-  r/  rA  rF  rH  rJ  rL  rN  rP  rR  rU  rX  rd  rl  r  r  r  r  r  r  r&  r+   r   r   rH   rH      sj         v0 v0 v0p0 0 0,  2 2 2        4  4	7 	7 	7
< 
< 
<' ' '& & &I I I  C C C"       , , ,6  .  	9 	9 	9K K K"  
  
    " " "B B B<  F  &D D D=> => =>~!C !C !CFJ J J&  (1 1 1 1 1r   rH   __main__)	test.supportr   unittestr$   TestCaser   rH   rD   mainr+   r   r   <module>r,     s    , + + + + +  



    K5 K5 K5 K5 K5" K5 K5 K5ZZ1 Z1 Z1 Z1 Z18$ Z1 Z1 Z1z zHMOOOOO r   