U ÂÏ aû ã@s¼ddlZddlmZGdd„deƒZddd„Zdd „Zd d „Zd d „ZeeƒZdd„Zdd„ZeeƒZdd„Z ee ƒZ dd„Z ee ƒZ dd„Z ee ƒZ dd„Z ee ƒZ Gdd„dejƒZdS)éN)Úgreenletc@s8eZdZdd„Zdd„Zdd„Zdd„Zd d „ZeZd S) ÚgenletcOs||_||_d|_dS©N)ÚargsÚkwdsÚchild)Úselfrr©r úeC:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-96vz34c0\greenlet\tests\test_generator_nested.pyÚ__init__szgenlet.__init__cCs|j\}||j|jŽdSr)Úfnrr)rr r r r Úrun sz genlet.runcCs|Srr ©rr r r Ú__iter__szgenlet.__iter__cCs ||_dSr)r)rrr r r Ú set_childszgenlet.set_childcCsP|jr.|j}|jr$|}|j}d|_q | ¡}nt ¡|_| ¡}|rH|St‚dSr)rÚswitchrÚ getcurrentÚparentÚ StopIteration)rrÚtmpÚresultr r r Ú__next__s  zgenlet.__next__N) Ú__name__Ú __module__Ú __qualname__r r rrrÚnextr r r r rs récCsTt ¡}|dkrFt|tƒs"tdƒ‚|dkr6|j |¡|j}|d8}q| |¡dS)Nrzyield outside a genletr)rrÚ isinstancerÚ RuntimeErrorrrr)ÚvalueÚlevelÚgr r r ÚYield,s   r"csG‡fdd„dtƒ}|S)NcseZdZ”fZdS)zGenlet..GenletN)rrrr r ©Úfuncr r ÚGenlet;sr%)r)r$r%r r#r r%:sr%ccs&t|ƒD]}| |d¡|VqdS©Nr)ÚrangeÚappend©ÚnÚseenÚir r r Úg1Bs r-cCs(t|ƒD]}| |d¡t|ƒqdSr&)r'r(r"r)r r r Úg2Hs r.cCs t|ƒdSr©r")r,r r r ÚnestedPsr0cCs(t|ƒD]}| |d¡t|ƒqdSr&)r'r(r0r)r r r Úg3Ts r1cCs2|dkr dSt|dƒD] }t|ƒqt|ƒdS)Nrr)Úaxr"©r*Úiir r r Úa[s  r5csHt|ƒdkr<|D](‰‡fdd„t‡fdd„|DƒƒDƒqnt|ƒdS)Nrcsg|]}tˆg|ƒ‘qSr r/)Ú.0Úp©Úer r Ú hszperms..csg|]}|ˆkr|‘qSr r )r6Úxr8r r r:hs)ÚlenÚpermsr")Úlr r8r r=ds (r=cCs*td|ƒD]}t|ƒt||dƒq dS)Nré)r'r"r3r r r Úgr1nsr@cCst|ƒD]}| |¡qdSr)r@r()r*r+r4r r r Úgr2vs rAc@s4eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd S) ÚNestedGeneratorTestsc Cs>g}td|ƒD]}| |¡q| |ddddddddg¡dS)Nérr?ééé é)rAr(Ú assertEqual©rr+r4r r r Útest_layered_genlets~s z)NestedGeneratorTests.test_layered_genletsc Cstttdƒƒƒ}t|ƒ}| t|ƒd¡| ddddg|k¡| ddddg|k¡g}ttttdƒƒƒtttdƒƒƒƒD]}| |¡qz| |ddddgdddgfddddgdddgfddddgdddgfddddgdddgfddddgdddgfddddgdddgfg¡dS)NrDérrr?rE)r=Úlistr'rHr<Ú assertTrueÚzipr()rZ gen_permsÚ permutationsÚresr4r r r Útest_permutations„s"& (þþz&NestedGeneratorTests.test_permutationscCsdtttfD]T}g}tdƒD]}|d|ƒD]}| |¡q(q| |dddddddddddg ¡q dS)NrErCrrr?rD)r-r.r1r'r(rH)rr!r+ÚkÚjr r r Útest_genlet_simple”s  z'NestedGeneratorTests.test_genlet_simplecCs&z tdƒWntk r YnXdS)Né )r"rrr r r Útest_genlet_badœs z$NestedGeneratorTests.test_genlet_badcCs g}tdƒD]}| |¡q dS)NrC)r2r(rIr r r Útest_nested_genlets¢s z(NestedGeneratorTests.test_nested_genletsN)rrrrJrQrTrVrWr r r r rB}s rB)r)Zunittestrrr"r%r-r.r0r1r5r2r=r@rAZTestCaserBr r r r Ús& '