NL i dZddlmZddlZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZdd lmZdd lmZmZdd lmZmZmZmZmZdd lmZdgZGddeZy)z.Test runner for data-flow analysis test cases.) annotationsN) CompileError) test_temp_dir)DataDrivenTestCase)dataflow)TOP_LEVEL_NAME) all_values)Value) format_funcgenerate_names_for_ir)ICODE_GEN_BUILTINSMypycDataSuiteassert_test_outputbuild_ir_for_single_fileuse_custom_builtins) exceptionsz analysis.testc eZdZeZeZdZddZy) TestAnalysisTc  ttjj|jt |5 t |j}g}|D]q}|jtk(r|jjds3tj||jt|tj |j"}t%|j&}|j}|jdr"tj(|j"||}n|jdr!tj*|j"|}n|jdrBtj,|j"||t/|j&|j"}n:|jdr"tj0|j"||}nJdt3|j&|j" t5|j6j9d D]} d jt5 fd |j6| D} d jt5 fd |j:| D} |j=| d j>| dfddd| zddd| zt tE||ddddy#t@$r} | jB}Yd} ~ 0d} ~ wwxYw#1swYyxYw)z'Perform a data-flow analysis test case. _toplevel _MaybeDefined _Liveness _MustDefined)regs_BorrowedArgumentz/No recognized _AnalysisName suffix in test casec*|dj|dfS)Nr)label)xs ^/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mypyc/test/test_analysis.pyz'TestAnalysis.run_case..FsadjjRSTURVEW)keyz, c3(K|] }| ywN.0regnamess r z(TestAnalysis.run_case..Hs.acuSz.ac3(K|] }| ywr%r&r's r r+z(TestAnalysis.run_case..Is/asc /ar,rr8 z{%s}23NzInvalid source code output)#rospathjoin data_prefixr rinputnamerendswithrinsert_exception_handlingextendr rget_cfgblockssetarg_regsanalyze_maybe_defined_regsanalyze_live_regsanalyze_must_defined_regsr analyze_borrowed_argumentsr sortedbeforekeysafterappendrrmessagesr)selftestcaseiractualfncfgargsr6analysis_resultr#preposter*s @r run_casezTestAnalysis.run_case su!d.>.>@R!SU] ^* O( -hnn="Bww.09O9OP[9\ 88<MM+b/2"**2995C'*2;;'7D#==D}}_5*2*M*MbiiY\^b*c{3*2*D*DRYYPS*T~6*2*L*LIIsDz"++ryy7Y+':;*2*M*MbiiY\^b*cW&WWu1"++ryyIE%'..335;W #ii.a_E[E[\_E`.a(ab#yy/aoF[F[\_F`/a)ab 03A c!f/EvPS|U[^bUbc 7"F x1M NU* O* O  $ $* O* Os5LK!JL! L* K;6L;LLL N)rIrreturnNone)__name__ __module__ __qualname__filesr base_path optional_outrSr&r"r rrs EIL-Or"r) __doc__ __future__ros.pathr1 mypy.errorsrmypy.test.configrmypy.test.datarmypyc.analysisr mypyc.commonrmypyc.ir.func_irr mypyc.ir.opsr mypyc.ir.pprintr r mypyc.test.testutilr rrrrmypyc.transformrrYrr&r"r risK4"$*-#''>' 2O>2Or"