
    daf                     h    d dl Z dZ G d de j                        Zedk(  r e j
                          yy)    NGlobal variablec                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)DictComprehensionTestc                 0   ddddddddd	d
d
}t        d      D ci c]  }||dz   
 }}| j                  ||       ddddddddddd
}t        d      D ci c]  }t        d      D ]  }||k(  s	||  }}}| j                  ||       y c c}w c c}}w )N
                              
r                           	   r   r   r   r   r   r   r   r   r   r   rangeassertEqual)selfexpectedkactualvs        ./root/Python-3.12.4/Lib/test/test_dictcomps.pytest_basicsz!DictComprehensionTest.test_basics	   s    bRB2"b"%*2Y/!QV)//*Q1qQ1qQO %b	G159GaQ!Q$G!GG* 0 Hs   BB0Bc                 N   d}d d d d d d d d d d d
}t        d      D ci c]  }|d  }}| j                  ||       | j                  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ddd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(d,d(d-d(d(d(dddddddddd.}t        d      D ci c]  }t        |dz  |dz        D ]  }||  }}}| j                  d       | j                  ||       y c c}w c c}}w )/NzLocal Variabler   r   r   r   r   r   r      r         $   r   %   &   '   -   r   .   /   0   1   6   r   7   8   9   :   ;   ?   r   @   A   B   C   D   E   H   r   I   J   K   L   M   N   O   Q   R   S   T   U   V   W   X   Y   r   )r   r    r   r!   r"   s        r#   test_scope_isolationz*DictComprehensionTest.test_scope_isolation   sM   $4D$8#(9-a!T'--*,-7Aq 7"a 7Q 7A 7r1 7b! 7R 7B 77q7"$a7)+Q702A77917>@!7EG77q7"$a7)+Q702A77917>@!7EG7 7 q7 #%a7 *,Q7 13A7 8:17 ?A!7 FH7 	7 q	7 '(QA1!qaQA7 !&b	H15QB3GHa!Q$H!HH,-* . Is   
D!D!c                 Z   d d d d d d d d d d d
}t        d      D ci c]  }|d  }}| j                  ||       | j                  t        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ddd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(d,d(d-d(d(d(dddddddddd.}t        d      D ci c]  }t        |dz  |dz        D ]  }||  }}}| j                  t        d       | j                  ||       y c c}w c c}}w )/Nr   r   r   r   r   r   r   r   r&   r   r'   r(   r)   r   r*   r+   r,   r-   r   r.   r/   r0   r1   r2   r   r3   r4   r5   r6   r7   r8   r   r9   r:   r;   r<   r=   r>   r?   r   r@   rA   rB   rC   rD   rE   )r   r   g)r   r   rS   r!   r"   s        r#    test_scope_isolation_from_globalz6DictComprehensionTest.test_scope_isolation_from_global&   sH   $4D$8#(9-a!T'--*-.7Aq 7"a 7Q 7A 7r1 7b! 7R 7B 77q7"$a7)+Q702A77917>@!7EG77q7"$a7)+Q702A77917>@!7EG7 7 q7 #%a7 *,Q7 13A7 8:17 ?A!7 FH7 	7 q	7 '(QA1!qaQA7 !&b	H15QB3GHa!Q$H!HH-.* . Is   
D"!D'c                     ddddddddddd
}t        d      D ci c]	  }|t         }}| j                  ||       y c c}w )Nr   r   r   )r   rS   r   )r   r   r    r!   s       r#   test_global_visibilityz,DictComprehensionTest.test_global_visibility7   sZ    (->(->(->(->(->	@
 !&b	*1!Q$*** +s   >c                     d}ddddddddddd
}t        d      D ci c]  }|| }}| j                  ||       | j                  |d       y c c}w )NzLocal variabler   r   r   )r   r"   r   r    r!   s        r#   test_local_visibilityz+DictComprehensionTest.test_local_visibility@   so    ',<',<',<',<',<	>
 !&b	*1!Q$***,- +s   
Ac                     | j                  t        d      5  t        ddd       d d d        | j                  t        d      5  t        ddd       d d d        y # 1 sw Y   6xY w# 1 sw Y   y xY w)Nzcannot assignz'{x: y for y, x in ((1, 2), (3, 4))} = 5z<test>execzillegal expressionz({x: y for y, x in ((1, 2), (3, 4))} += 5)assertRaisesRegexSyntaxErrorcompile)r   s    r#   test_illegal_assignmentz-DictComprehensionTest.test_illegal_assignmentK   st    ##KA 	=x	 ##K1EF 	>	 			 		 	s   AA&A#&A/c           	          ddddd}g d}g fd}t        dd	      D ci c]  \  }} |d
|       |d|       }}}| j                  ||       | j                  |       y c c}}w )NWold)Herb   ra   )
)keyrd   )valuer`   )rf   re   )rg   ra   rf   rb   )rg   rrh   )rg   rb   )rf   ra   )rg   rc   c                 .    j                  | |f       |S )N)append)posrg   actual_callss     r#   add_callz=DictComprehensionTest.test_evaluation_order.<locals>.add_callf   s    e-L    HelloWorldrf   rg   )zipr   )r   r   expected_callsrn   r    r"   r!   rm   s          @r#   test_evaluation_orderz+DictComprehensionTest.test_evaluation_orderT   s    	

 	 GW-
1 UA! 44
 

 	*~6
s   A&c                    ddddd}t        d      D ci c]  }|dz   }|||z   }}}| j                  ||       dddd	d
}t        d      D ci c]  }|dz   }|dz   }||z   ||z   }}}}| j                  ||       dddd	d
}t        d      D ci c]  }|dz   |dz   }}||z   ||z   }}}}| j                  ||       y c c}}w c c}}}w c c}}}w )Nr   r   r   r   )r   r   r   r   r   r   r	      )r   r   r   r   r   )r   r   ijr!   r    s         r#   'test_assignment_idiom_in_comprehensionsz=DictComprehensionTest.test_assignment_idiom_in_comprehensionsr   s   Q1,"'(:QQqSq!QqS&!::*Q2"-$)!HKKqqsac!A#qs(#KK*Q2"-$)!HGGqAaC1Q!!A#qs(#GG* ; L Hs   C
CCc                     ddddd}| j                  g t        d      D ci c]  }|||z  
 c}|       | j                  g t        d      D ci c]  }|||z  
 c}|       y c c}w c c}w )Nr   r   r   r   )r   r   r   r   )r   r   )r   r   rw   s      r#   test_star_expressionz*DictComprehensionTest.test_star_expression}   sn    Q1++E!H+6Q!QqS&6A,E!H,7Q!QqS&7B 77s   A(A-N)__name__
__module____qualname__r$   rQ   rT   rV   rX   r^   rt   ry   r{    ro   r#   r   r      s0    ++&+"+	.7<	+Cro   r   __main__)unittestrS   TestCaser   r|   mainr   ro   r#   <module>r      s@     yCH-- yCx zHMMO ro   