a 4dg@s2ddlZdZGdddejZedkr.edS)NGlobal variablec@sTeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ dS)DictComprehensionTestc Cstddddddddd d d }d d tdD}|||ddddddddddd }dd tdD}|||dS)N  r cSsi|]}||dqSr.0krr//usr/local/lib/python3.9/test/test_dictcomps.py z5DictComprehensionTest.test_basics..rrrrrrrrrrcSs(i|] }tdD]}||kr||qqSrrangerrvrrrrrr! assertEqualselfexpectedactualrrr test_basics s z!DictComprehensionTest.test_basicsc.Csd}ddddddddddd }ddtdD}|||||dddddddd d d d d d d d d d d d d d d d d d d d d d d d d d d d d d dddddddddd-}ddtdD}||d|||dS)NzLocal VariablercSsi|] }|dqSNrrrrrrrz>DictComprehensionTest.test_scope_isolation..rrrrrrrrrr-rr r $%&'-./016789:;?@ABCDEHIJKLMNOQRSTUVWXYcSs*i|]"}t|d|dD] }||qqSrrr )rr#rrrrr"rr$)r'rr(r)rrrtest_scope_isolations"     z*DictComprehensionTest.test_scope_isolationc.Csddddddddddd }ddtdD}||||tdddddddd d d d d d d d d d d d d d d d d d d d d d d d d d d d d d dddddddddd-}ddtdD}|td|||dS)NrcSsi|] }|dqSr+r)rgrrrr)rzJDictComprehensionTest.test_scope_isolation_from_global..rrrrrrrrrrrr,cSs*i|]"}t|d|dD] }||qqSrWr )rr#rYrrrr3r)r!r%rYr&rrr test_scope_isolation_from_global&s      z6DictComprehensionTest.test_scope_isolation_from_globalc Cs<ddddddddddd }ddtdD}|||dS)NrrcSsi|] }|tqSr)rYrrrrr=rz@DictComprehensionTest.test_global_visibility..rr$r&rrrtest_global_visibility7sz,DictComprehensionTest.test_global_visibilityc sPdddddddddddd }fddtdD}||||ddS)NzLocal variablercsi|] }|qSrrrr#rrrGrz?DictComprehensionTest.test_local_visibility..rr$r&rr\rtest_local_visibility@s z+DictComprehensionTest.test_local_visibilitycCst|tdtdddWdn1s.0Y|tdtdddWdn1sf0YdS)Nz cannot assignz'{x: y for y, x in ((1, 2), (3, 4))} = 5zexeczillegal expressionz({x: y for y, x in ((1, 2), (3, 4))} += 5)ZassertRaisesRegex SyntaxErrorcompile)r'rrrtest_illegal_assignmentKs"z-DictComprehensionTest.test_illegal_assignmentcsZddddd}gd}gfddfd d td d D}|||||dS) NWold)Herdrc) )keyrf)valuerb)rhrg)rircrhrd)rirrj)rird)rhrc)rirecs||f|Sr+)append)posri) actual_callsrradd_callfsz=DictComprehensionTest.test_evaluation_order..add_callcs"i|]\}}d|d|qS)rhrirr")rorrrjsz?DictComprehensionTest.test_evaluation_order..ZHelloZWorld)zipr%)r'r(Zexpected_callsr)r)rnrortest_evaluation_orderTs   z+DictComprehensionTest.test_evaluation_ordercCsddddd}ddtdD}|||dd d d d }d dtdD}|||dd d d d }ddtdD}|||dS)Nrrrr )rrrrcSsi|]}|d}|||qSrr)rijrrrrtrzQDictComprehensionTest.test_assignment_idiom_in_comprehensions..rrr)rrrrcSs*i|]"}|d}|d}||||qSrrrrrsrtrrrrrwrcSs,i|]$}|d|d}}||||qS)rrrrvrrrrzrr$r&rrr'test_assignment_idiom_in_comprehensionsrs  z=DictComprehensionTest.test_assignment_idiom_in_comprehensionscCsPddddd}|ddgtdD||ddgtdRD|dS) Nrrrr)rrrrcSsi|]}|||qSrrrrsrrrrrz>DictComprehensionTest.test_star_expression..cSsi|]}|||qSrrrxrrrrr)r%r!)r'r(rrrtest_star_expression}sz*DictComprehensionTest.test_star_expressionN) __name__ __module__ __qualname__r*rXrZr[r]rarqrwryrrrrrs     r__main__)ZunittestrYZTestCaserrzmainrrrrs|