NL idZddlmZddlZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZdd lmZdd lmZmZmZmZmZmZdd lmZdd lmZddlmZGddeZ Gdde Z!Gdde Z"y)z!Runner for IR optimization tests.) annotationsN) CompileError) test_temp_dir)DataDrivenTestCase)TOP_LEVEL_NAME)FuncIR) format_func)CompilerOptions)ICODE_GEN_BUILTINSMypycDataSuiteassert_test_outputbuild_ir_for_single_fileremove_comment_linesuse_custom_builtins)do_copy_propagation)do_flag_elimination)insert_uninit_checksc$eZdZdZeZddZddZy)OptimizationSuitez~Base class for IR optimization test suites. To use this, add a base class and define "files" and "do_optimizations". c2ttjj|jt |5t |j} t|j}g}|D]g}|jtk(r|jjds2t||j||jt!|i t'||d|dddy#t"$r}|j$}Yd}~1d}~wwxYw#1swYyxYw)N _toplevelzInvalid source code output)rospathjoin data_prefixr routputrinputnamerendswithrdo_optimizationsextendr rmessagesr )selftestcaseexpected_outputiractualfnes c/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mypyc/test/test_optimizations.pyrun_casezOptimizationSuite.run_case#s d.>.>@R!SU] ^ `28??CO 3-hnn=3Bww.09O9OP[9\ (,))"-MM+b/2 3 x1M _ ` `  $ $  ` `s6D C+%A=D + D 4 DD D  D  DctN)NotImplementedErrorr#r(s r*r z"OptimizationSuite.do_optimizations5s!!N)r$rreturnNoner(rr1r2)__name__ __module__ __qualname____doc__r base_pathr+r r0r*rrs I`$"r0rceZdZdgZddZy)TestCopyPropagationzopt-copy-propagation.testc,t|tyr-)rr r/s r*r z$TestCopyPropagation.do_optimizations<B 12r0Nr3r4r5r6filesr r9r0r*r;r;9 ( )E3r0r;ceZdZdgZddZy)TestFlagEliminationzopt-flag-elimination.testc,t|tyr-)rr r/s r*r z$TestFlagElimination.do_optimizationsCr=r0Nr3r>r9r0r*rBrB@r@r0rB)#r7 __future__ros.pathr mypy.errorsrmypy.test.configrmypy.test.datar mypyc.commonrmypyc.ir.func_irrmypyc.ir.pprintr mypyc.optionsr mypyc.test.testutilr r r rrr mypyc.transform.copy_propagationr mypyc.transform.flag_eliminationrmypyc.transform.uninitrrr;rBr9r0r*rQs_'"$*-'#')A@7""<3+33+3r0