
    6bh1                     |    d dl Z d dlZd dlmZ dZ G d dej
                        Zedk(  r ej                          yy)    N)
BrokenIterGlobal variablec                   H    e Zd 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        =/opt/python-3.12.12/usr/lib/python3.12/test/test_dictcomps.pytest_basicsz!DictComprehensionTest.test_basics   s    bRB2"b"%*2Y/Y!QV)Y/*Q1qQ1qQO %b	G	159aQ!Q$9!	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   sL   $4D$8#(9-9a!T'9-*,-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	H	15QB3Ga!Q$3G!	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/   r0   r1   r2   r3   r   r4   r5   r6   r7   r8   r9   r   r:   r;   r<   r=   r>   r?   r@   r   rA   rB   rC   rD   rE   rF   )r   r   g)r   r    rT   r"   r#   s        r$    test_scope_isolation_from_globalz6DictComprehensionTest.test_scope_isolation_from_global)   sG   $4D$8#(9-9a!T'9-*-.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	H	15QB3Ga!Q$3G!	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   rT   r   )r   r    r!   r"   s       r$   test_global_visibilityz,DictComprehensionTest.test_global_visibility:   s[    (->(->(->(->(->	@
 !&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_visibilityC   sp    ',<',<',<',<',<	>
 !&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_assignmentN   sh    ##KA=x B ##K1EF> GF	 BA GFs   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erc   rb   )
)keyre   )valuera   )rg   rf   )rh   rb   rg   rc   )rh   rri   )rh   rc   )rg   rb   )rh   rd   c                 .    j                  | |f       |S )N)append)posrh   actual_callss     r$   add_callz=DictComprehensionTest.test_evaluation_order.<locals>.add_calli   s    e-L    HelloWorldrg   rh   )zipr   )r   r    expected_callsro   r!   r#   r"   rn   s          @r$   test_evaluation_orderz+DictComprehensionTest.test_evaluation_orderW   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_comprehensionsu   s   Q1,"'(:(QQqSq!QqS&!(:*Q2"-$)!HKHqqsac!A#qs(#HK*Q2"-$)!HGHqAaC1Q!!A#qs(#H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    rx   s      r$   test_star_expressionz*DictComprehensionTest.test_star_expression   sv    Q1++E!H+6+Q!QqS&+6A,E!H,7,Q!QqS&,7B 77s   A(A-c                    d }d }d }|df|df|dffD ]  \  }}| j                  |      5   |       }t        j                  |j                        d   }d}|j                  }	| j                  |j                  |	j                  d	z          | j                  |j                  |	j                  d	z          | j                  |j                  |j                  |z
  |j                  |z
   |       d d d         y # 1 sw Y   xY w)
Nc                  v    	 t        d      D  ci c]  } | |  c}  y c c} w # t        $ r}|cY d }~S d }~ww xY w)NT)init_raisesr   	Exceptionxrf   s     r$   r   zCDictComprehensionTest.test_exception_locations.<locals>.init_raises   <    (T:;:1:;;     # 
# # 	8388c                  v    	 t        d      D  ci c]  } | |  c}  y c c} w # t        $ r}|cY d }~S d }~ww xY w)NT)next_raisesr   r   s     r$   r   zCDictComprehensionTest.test_exception_locations.<locals>.next_raises   r   r   c                  v    	 t        d      D  ci c]  } | |  c}  y c c} w # t        $ r}|cY d }~S d }~ww xY w)NT)iter_raisesr   r   s     r$   r   zCDictComprehensionTest.test_exception_locations.<locals>.iter_raises   r   r   zBrokenIter(init_raises=True)zBrokenIter(next_raises=True)zBrokenIter(iter_raises=True)r   r   r   )subTest	traceback
extract_tb__traceback____code__r   linenoco_firstlineno
end_linenolinecolno	end_colno)
r   r   r   r   funcr    excfindentcos
             r$   test_exception_locationsz.DictComprehensionTest.test_exception_locations   s    			 !,-KL +-KL +-KL ND( d#f(():):;A>]]  2+<+<q+@A  r/@/@1/DE  &(81;;;O!P!)+ $#	  $#s   CC::D	N)__name__
__module____qualname__r%   rR   rU   rW   rY   r_   ru   rz   r|   r    rp   r$   r   r   
   s5    ++&+"+	.7<	+C
!+rp   r   __main__)	r   unittesttest.supportr   rT   TestCaser   r   mainr   rp   r$   <module>r      sD      # \+H-- \+~ zHMMO rp   