From c86abb2033facab962d790b339a6b877f9cfbe6c Mon Sep 17 00:00:00 2001 From: ci-bot Date: Mon, 14 Jul 2025 14:49:21 +0000 Subject: [PATCH] CI: update test and coverage reports --- ci-reports/markdown/TEST-REPORT.md | 352 ++++++++++++------------- ci-reports/markdown/pytest-report.json | 2 +- 2 files changed, 177 insertions(+), 177 deletions(-) diff --git a/ci-reports/markdown/TEST-REPORT.md b/ci-reports/markdown/TEST-REPORT.md index f0b8e1de..454f12fd 100644 --- a/ci-reports/markdown/TEST-REPORT.md +++ b/ci-reports/markdown/TEST-REPORT.md @@ -1,5 +1,5 @@ # ๐Ÿงช Test Report -*Generated on 2025-07-14 14:43:16* +*Generated on 2025-07-14 14:49:21* ## ๐Ÿ“‹ Summary - **Passed**: `31` @@ -7,7 +7,7 @@ - **Xfailed**: `2` - **Total**: `43` - **Collected**: `43` -- **Total Duration**: `0.315`s +- **Total Duration**: `0.336`s ## ๐Ÿ”Ž Tests
@@ -23,7 +23,7 @@ โœ… #1 - **Status:** โœ… `passed` -- **Duration:** `0.000583` s +- **Duration:** `0.000756` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -32,7 +32,7 @@ ๐Ÿ“Œ Duration ``` -0.00464572396595031 +0.004617957049049437 ```
@@ -51,7 +51,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0005834490293636918 +0.0007563600083813071 ``` @@ -70,7 +70,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0015040939906612039 +0.001968709984794259 ``` @@ -93,7 +93,7 @@ passed โœ… #2 - **Status:** โœ… `passed` -- **Duration:** `0.000364` s +- **Duration:** `0.000401` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -102,7 +102,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0008129210909828544 +0.0008771360153332353 ``` @@ -121,7 +121,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00036360800731927156 +0.0004011469427496195 ``` @@ -140,7 +140,7 @@ passed ๐Ÿ“Œ Duration ``` -0.000704035977832973 +0.0007910049753263593 ``` @@ -163,7 +163,7 @@ passed โœ… #3 - **Status:** โœ… `passed` -- **Duration:** `0.000371` s +- **Duration:** `0.000389` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -172,7 +172,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019856798462569714 +0.00020500796381384134 ``` @@ -191,7 +191,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0003709479933604598 +0.00038874102756381035 ``` @@ -210,7 +210,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00021130393724888563 +0.00022134999744594097 ``` @@ -233,7 +233,7 @@ passed โœ… #4 - **Status:** โœ… `passed` -- **Duration:** `0.000211` s +- **Duration:** `0.000257` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -242,7 +242,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018894602544605732 +0.0002105889143422246 ``` @@ -261,7 +261,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00021124305203557014 +0.0002573719248175621 ``` @@ -280,7 +280,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00020395196042954922 +0.00020847294945269823 ``` @@ -303,7 +303,7 @@ passed โœ… #5 - **Status:** โœ… `passed` -- **Duration:** `0.000227` s +- **Duration:** `0.000229` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -312,7 +312,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00038915302138775587 +0.0003949750680476427 ``` @@ -331,7 +331,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002270030090585351 +0.00022938300389796495 ``` @@ -350,7 +350,7 @@ passed ๐Ÿ“Œ Duration ``` -0.000662944046780467 +0.0006894280668348074 ``` @@ -373,7 +373,7 @@ passed โœ… #6 - **Status:** โœ… `passed` -- **Duration:** `0.008752` s +- **Duration:** `0.008985` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -382,7 +382,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0003695060731843114 +0.0003616049652919173 ``` @@ -401,7 +401,7 @@ passed ๐Ÿ“Œ Duration ``` -0.008751561981625855 +0.008984648040495813 ``` @@ -420,7 +420,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0009123190538957715 +0.0010357450228184462 ``` @@ -443,7 +443,7 @@ passed โœ… #7 - **Status:** โœ… `passed` -- **Duration:** `0.000194` s +- **Duration:** `0.000381` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -452,7 +452,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00020920601673424244 +0.0003494380507618189 ``` @@ -471,7 +471,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019406399223953485 +0.00038097798824310303 ``` @@ -490,7 +490,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00020421401131898165 +0.00035712902899831533 ``` @@ -513,7 +513,7 @@ passed โœ… #8 - **Status:** โœ… `passed` -- **Duration:** `0.000220` s +- **Duration:** `0.000248` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -522,7 +522,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00040839205030351877 +0.0004639779217541218 ``` @@ -541,7 +541,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00021960202138870955 +0.0002484070137143135 ``` @@ -560,7 +560,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0011805809335783124 +0.0008254030253738165 ``` @@ -583,7 +583,7 @@ passed โœ… #10 - **Status:** โœ… `passed` -- **Duration:** `0.000225` s +- **Duration:** `0.000277` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -592,7 +592,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00022048188839107752 +0.0003002990270033479 ``` @@ -611,7 +611,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00022530299611389637 +0.00027706497348845005 ``` @@ -630,7 +630,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002069410402327776 +0.0002547380281612277 ``` @@ -658,7 +658,7 @@ passed โœ… #12 - **Status:** โœ… `passed` -- **Duration:** `0.000209` s +- **Duration:** `0.000204` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -667,7 +667,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002209460362792015 +0.00020222098100930452 ``` @@ -686,7 +686,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002094949595630169 +0.00020369794219732285 ``` @@ -705,7 +705,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00021691399160772562 +0.0002168810460716486 ``` @@ -728,7 +728,7 @@ passed โœ… #13 - **Status:** โœ… `passed` -- **Duration:** `0.000172` s +- **Duration:** `0.000173` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -737,7 +737,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018034595996141434 +0.0001713009551167488 ``` @@ -756,7 +756,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00017179199494421482 +0.00017264601774513721 ``` @@ -775,7 +775,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002088670153170824 +0.00019882700871676207 ``` @@ -798,7 +798,7 @@ passed โœ… #15 - **Status:** โœ… `passed` -- **Duration:** `0.000207` s +- **Duration:** `0.000218` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -807,7 +807,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019831606186926365 +0.00021640502382069826 ``` @@ -826,7 +826,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00020710192620754242 +0.00021836801897734404 ``` @@ -845,7 +845,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00020438898354768753 +0.000205551041290164 ``` @@ -868,7 +868,7 @@ passed โœ… #18 - **Status:** โœ… `passed` -- **Duration:** `0.000205` s +- **Duration:** `0.000213` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -877,7 +877,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001924070529639721 +0.00021353899501264095 ``` @@ -896,7 +896,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00020459899678826332 +0.00021349499002099037 ``` @@ -915,7 +915,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002061479026451707 +0.0002029439201578498 ``` @@ -938,7 +938,7 @@ passed โœ… #19 - **Status:** โœ… `passed` -- **Duration:** `0.000185` s +- **Duration:** `0.000195` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -947,7 +947,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002001129323616624 +0.00018743996042758226 ``` @@ -966,7 +966,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018545100465416908 +0.00019482697825878859 ``` @@ -985,7 +985,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001969150034710765 +0.00019577005878090858 ``` @@ -1008,7 +1008,7 @@ passed โœ… #20 - **Status:** โœ… `passed` -- **Duration:** `0.000969` s +- **Duration:** `0.000970` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1017,7 +1017,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001715359976515174 +0.0001702549634501338 ``` @@ -1036,7 +1036,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0009691390441730618 +0.0009700659429654479 ``` @@ -1055,7 +1055,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00022587704006582499 +0.00021042500156909227 ``` @@ -1087,7 +1087,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018580409232527018 +0.00017369503621011972 ``` @@ -1106,7 +1106,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001717110862955451 +0.00017163902521133423 ``` @@ -1125,7 +1125,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019159005023539066 +0.00019572698511183262 ``` @@ -1148,7 +1148,7 @@ passed โœ… #22 - **Status:** โœ… `passed` -- **Duration:** `0.000177` s +- **Duration:** `0.000195` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1157,7 +1157,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00017693801783025265 +0.00018243491649627686 ``` @@ -1176,7 +1176,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001772330142557621 +0.00019519601482897997 ``` @@ -1195,7 +1195,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018927804194390774 +0.00018651701975613832 ``` @@ -1218,7 +1218,7 @@ passed โœ… #23 - **Status:** โœ… `passed` -- **Duration:** `0.000184` s +- **Duration:** `0.000181` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1227,7 +1227,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00016618194058537483 +0.00017865491099655628 ``` @@ -1246,7 +1246,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018387194722890854 +0.00018100603483617306 ``` @@ -1265,7 +1265,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019145605619996786 +0.00019195699132978916 ``` @@ -1288,7 +1288,7 @@ passed โœ… #24 - **Status:** โœ… `passed` -- **Duration:** `0.000167` s +- **Duration:** `0.000178` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1297,7 +1297,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00016783899627625942 +0.00016721209976822138 ``` @@ -1316,7 +1316,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00016651395708322525 +0.000178205082193017 ``` @@ -1335,7 +1335,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00020786002278327942 +0.00019070098642259836 ``` @@ -1358,7 +1358,7 @@ passed โœ… #26 - **Status:** โœ… `passed` -- **Duration:** `0.000194` s +- **Duration:** `0.000217` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1367,7 +1367,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00020283402409404516 +0.00023506605066359043 ``` @@ -1386,7 +1386,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019422895275056362 +0.00021719001233577728 ``` @@ -1405,7 +1405,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019317097030580044 +0.00021374609787017107 ``` @@ -1428,7 +1428,7 @@ passed โœ… #30 - **Status:** โœ… `passed` -- **Duration:** `0.000222` s +- **Duration:** `0.000340` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1437,7 +1437,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00022388994693756104 +0.0004258720437064767 ``` @@ -1456,7 +1456,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00022210099268704653 +0.00033950200304389 ``` @@ -1475,7 +1475,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00022886402439326048 +0.0003007430350407958 ``` @@ -1498,7 +1498,7 @@ passed โœ… #31 - **Status:** โœ… `passed` -- **Duration:** `0.000211` s +- **Duration:** `0.000301` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1507,7 +1507,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00045825005508959293 +0.0005719750188291073 ``` @@ -1526,7 +1526,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002114559756591916 +0.00030105304904282093 ``` @@ -1545,7 +1545,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0007276840042322874 +0.0009949709055945277 ``` @@ -1568,7 +1568,7 @@ passed โœ… #33 - **Status:** โœ… `passed` -- **Duration:** `0.000259` s +- **Duration:** `0.000298` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1577,7 +1577,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00041261897422373295 +0.0005372470477595925 ``` @@ -1596,7 +1596,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002588090719655156 +0.00029834092129021883 ``` @@ -1615,7 +1615,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0007083290256559849 +0.0008468080777674913 ``` @@ -1638,7 +1638,7 @@ passed โœ… #34 - **Status:** โœ… `passed` -- **Duration:** `0.000525` s +- **Duration:** `0.000556` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1647,7 +1647,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00020659796427935362 +0.00022685702424496412 ``` @@ -1666,7 +1666,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0005250299582257867 +0.0005564079619944096 ``` @@ -1685,7 +1685,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002294060541316867 +0.0002461819676682353 ``` @@ -1713,7 +1713,7 @@ passed โœ… #35 - **Status:** โœ… `passed` -- **Duration:** `0.000180` s +- **Duration:** `0.000200` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1722,7 +1722,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018892192747443914 +0.00020473904442042112 ``` @@ -1741,7 +1741,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018038798589259386 +0.00019969302229583263 ``` @@ -1760,7 +1760,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00020029803272336721 +0.00021990295499563217 ``` @@ -1783,7 +1783,7 @@ passed โœ… #36 - **Status:** โœ… `passed` -- **Duration:** `0.000187` s +- **Duration:** `0.000204` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1792,7 +1792,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00017741392366588116 +0.0001893759472295642 ``` @@ -1811,7 +1811,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018671411089599133 +0.00020406197290867567 ``` @@ -1830,7 +1830,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019175501074641943 +0.00021910399664193392 ``` @@ -1853,7 +1853,7 @@ passed โœ… #37 - **Status:** โœ… `passed` -- **Duration:** `0.000173` s +- **Duration:** `0.000177` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1862,7 +1862,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001810770481824875 +0.00019783899188041687 ``` @@ -1881,7 +1881,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001728840870782733 +0.00017716700676828623 ``` @@ -1900,7 +1900,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019152299501001835 +0.00021673704031854868 ``` @@ -1923,7 +1923,7 @@ passed โœ… #38 - **Status:** โœ… `passed` -- **Duration:** `0.000168` s +- **Duration:** `0.000179` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1932,7 +1932,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00017047300934791565 +0.00018432794604450464 ``` @@ -1951,7 +1951,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001679499400779605 +0.0001793659757822752 ``` @@ -1970,7 +1970,7 @@ passed ๐Ÿ“Œ Duration ``` -0.000202854978851974 +0.00020071305334568024 ``` @@ -1993,7 +1993,7 @@ passed โœ… #40 - **Status:** โœ… `passed` -- **Duration:** `0.000198` s +- **Duration:** `0.000226` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -2002,7 +2002,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019435002468526363 +0.00019783200696110725 ``` @@ -2021,7 +2021,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001980530796572566 +0.00022565096151083708 ``` @@ -2040,7 +2040,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019169494044035673 +0.00021274294704198837 ``` @@ -2063,7 +2063,7 @@ passed โœ… #41 - **Status:** โœ… `passed` -- **Duration:** `0.000179` s +- **Duration:** `0.000198` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -2072,7 +2072,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018288800492882729 +0.00018940994050353765 ``` @@ -2091,7 +2091,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001792029943317175 +0.0001975309569388628 ``` @@ -2110,7 +2110,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019428995437920094 +0.00021336192730814219 ``` @@ -2133,7 +2133,7 @@ passed โœ… #42 - **Status:** โœ… `passed` -- **Duration:** `0.000177` s +- **Duration:** `0.000253` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -2142,7 +2142,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019613502081483603 +0.00018640700727701187 ``` @@ -2161,7 +2161,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001768539659678936 +0.0002527860924601555 ``` @@ -2180,7 +2180,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00020290003158152103 +0.00025885901413857937 ``` @@ -2213,7 +2213,7 @@ passed โŒ #9 - **Status:** โŒ `failed` -- **Duration:** `0.001070` s +- **Duration:** `0.001408` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -2222,7 +2222,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0008122080471366644 +0.0008101530838757753 ``` @@ -2241,7 +2241,7 @@ passed ๐Ÿ“Œ Duration ``` -0.001069621997885406 +0.0014078549575060606 ``` @@ -2300,7 +2300,7 @@ tests/test_io_utils.py:72: Failed ๐Ÿ“Œ Duration ``` -0.0008879059460014105 +0.0011783690424636006 ``` @@ -2328,7 +2328,7 @@ passed โŒ #11 - **Status:** โŒ `failed` -- **Duration:** `0.000180` s +- **Duration:** `0.000201` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -2337,7 +2337,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019576610065996647 +0.00021702505182474852 ``` @@ -2356,7 +2356,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00017970602493733168 +0.00020137301180511713 ``` @@ -2408,7 +2408,7 @@ tests/test_math_utils.py:16: NameError ๐Ÿ“Œ Duration ``` -0.00031367898918688297 +0.0002840820234268904 ``` @@ -2431,7 +2431,7 @@ passed โŒ #14 - **Status:** โŒ `failed` -- **Duration:** `0.000507` s +- **Duration:** `0.000517` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -2440,7 +2440,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019698194228112698 +0.00017807807307690382 ``` @@ -2459,7 +2459,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0005074499640613794 +0.0005174310645088553 ``` @@ -2513,7 +2513,7 @@ tests/test_math_utils.py:29: AssertionError ๐Ÿ“Œ Duration ``` -0.00027086702175438404 +0.0002676490694284439 ``` @@ -2536,7 +2536,7 @@ passed โŒ #17 - **Status:** โŒ `failed` -- **Duration:** `0.000193` s +- **Duration:** `0.000192` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -2545,7 +2545,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019688194151967764 +0.0001908650156110525 ``` @@ -2564,7 +2564,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019348703790456057 +0.0001916420878842473 ``` @@ -2616,7 +2616,7 @@ tests/test_math_utils.py:43: RuntimeError ๐Ÿ“Œ Duration ``` -0.00026913301553577185 +0.00028797995764762163 ``` @@ -2639,7 +2639,7 @@ passed โŒ #25 - **Status:** โŒ `failed` -- **Duration:** `0.000179` s +- **Duration:** `0.000182` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -2648,7 +2648,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00017340504564344883 +0.00016916892491281033 ``` @@ -2667,7 +2667,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00017853407189249992 +0.00018182303756475449 ``` @@ -2719,7 +2719,7 @@ tests/test_math_utils.py:84: Exception ๐Ÿ“Œ Duration ``` -0.00026646105106920004 +0.00032364693470299244 ``` @@ -2742,7 +2742,7 @@ passed โŒ #27 - **Status:** โŒ `failed` -- **Duration:** `0.000177` s +- **Duration:** `0.000195` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -2751,7 +2751,7 @@ passed ๐Ÿ“Œ Duration ``` -0.000183618045412004 +0.00018157996237277985 ``` @@ -2770,7 +2770,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00017739005852490664 +0.0001949709840118885 ``` @@ -2846,7 +2846,7 @@ tests/test_math_utils.py:93: StopIteration The above exception was the direct cause of the following exception: cls = -func = . at 0x7f74c38aff70> +func = . at 0x7f44671f3f70> when = 'call' reraise = (, ) @@ -2916,7 +2916,7 @@ E RuntimeError: generator raised StopIteration ๐Ÿ“Œ Duration ``` -0.0004587490111589432 +0.00045209890231490135 ``` @@ -2939,7 +2939,7 @@ passed โŒ #28 - **Status:** โŒ `failed` -- **Duration:** `0.000237` s +- **Duration:** `0.000225` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -2948,7 +2948,7 @@ passed ๐Ÿ“Œ Duration ``` -0.000270336982794106 +0.00028916297014802694 ``` @@ -2967,7 +2967,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00023671297822147608 +0.0002249880926683545 ``` @@ -3019,7 +3019,7 @@ tests/test_math_utils.py:97: GeneratorExit ๐Ÿ“Œ Duration ``` -0.0003299450036138296 +0.00042971898801624775 ``` @@ -3042,7 +3042,7 @@ passed โŒ #29 - **Status:** โŒ `failed` -- **Duration:** `0.000222` s +- **Duration:** `0.000251` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -3051,7 +3051,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0005128619959577918 +0.0005874220514670014 ``` @@ -3070,7 +3070,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00022203498519957066 +0.0002511070342734456 ``` @@ -3106,7 +3106,7 @@ message: RecursionError ๐Ÿ“Œ Longrepr ``` -monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f74c3ced190> +monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f4466ebfbb0> def test_recursion_limit(monkeypatch): # Lower recursion limit to force RecursionError on deep recursion @@ -3125,7 +3125,7 @@ tests/test_math_utils.py:108: RecursionError ๐Ÿ“Œ Duration ``` -0.000988241983577609 +0.0011272020637989044 ``` @@ -3148,7 +3148,7 @@ passed โŒ #32 - **Status:** โŒ `failed` -- **Duration:** `0.000196` s +- **Duration:** `0.000241` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -3157,7 +3157,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00036576204001903534 +0.0004778510192409158 ``` @@ -3176,7 +3176,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019559694919735193 +0.00024109298828989267 ``` @@ -3212,7 +3212,7 @@ message: AttributeError ๐Ÿ“Œ Longrepr ``` -monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f74c3b141f0> +monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f4466cd3370> def test_broken_function(monkeypatch): # Simulate broken function raising TypeError @@ -3232,7 +3232,7 @@ tests/test_math_utils.py:132: AttributeError ๐Ÿ“Œ Duration ``` -0.000836986000649631 +0.0011143990559503436 ``` @@ -3260,7 +3260,7 @@ passed โŒ #39 - **Status:** โŒ `failed` -- **Duration:** `0.000214` s +- **Duration:** `0.000219` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -3269,7 +3269,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00016937695909291506 +0.00020313996355980635 ``` @@ -3288,7 +3288,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002137790434062481 +0.00021908094640821218 ``` @@ -3341,7 +3341,7 @@ tests/test_string_utils.py:28: Failed ๐Ÿ“Œ Duration ``` -0.0002529839985072613 +0.00027646799571812153 ``` @@ -3374,7 +3374,7 @@ passed โŒ #16 - **Status:** โŒ `xfailed` -- **Duration:** `0.000321` s +- **Duration:** `0.000336` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -3383,7 +3383,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00023584009613841772 +0.00019142404198646545 ``` @@ -3402,7 +3402,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0003208710113540292 +0.00033608300145715475 ``` @@ -3457,7 +3457,7 @@ tests/test_math_utils.py:39: AssertionError ๐Ÿ“Œ Duration ``` -0.0003000239375978708 +0.00027862098067998886 ``` @@ -3485,7 +3485,7 @@ passed โŒ #43 - **Status:** โŒ `xfailed` -- **Duration:** `0.000706` s +- **Duration:** `0.000876` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -3494,7 +3494,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018242094665765762 +0.0002366849221289158 ``` @@ -3513,7 +3513,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0007056340109556913 +0.0008762630168348551 ``` @@ -3574,7 +3574,7 @@ tests/test_string_utils.py:50: AssertionError ๐Ÿ“Œ Duration ``` -0.0006596279563382268 +0.0012361010303720832 ``` diff --git a/ci-reports/markdown/pytest-report.json b/ci-reports/markdown/pytest-report.json index 965d5958..794d182b 100644 --- a/ci-reports/markdown/pytest-report.json +++ b/ci-reports/markdown/pytest-report.json @@ -1 +1 @@ -{"created": 1752504194.3117373, "duration": 0.31458091735839844, "exitcode": 1, "root": "/workspace/tligui_y/slic", "environment": {}, "summary": {"passed": 31, "failed": 10, "xfailed": 2, "total": 43, "collected": 43}, "collectors": [{"nodeid": "", "outcome": "passed", "result": [{"nodeid": ".", "type": "Dir"}]}, {"nodeid": "allure-results", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/coverage", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/markdown", "outcome": "passed", "result": []}, {"nodeid": "ci-reports", "outcome": "passed", "result": [{"nodeid": "ci-reports/allure", "type": "Dir"}, {"nodeid": "ci-reports/coverage", "type": "Dir"}, {"nodeid": "ci-reports/markdown", "type": "Dir"}]}, {"nodeid": "functions", "outcome": "passed", "result": []}, {"nodeid": "tests/test_broken_fct.py", "outcome": "passed", "result": []}, {"nodeid": "tests/test_collector_error.py", "outcome": "passed", "result": []}, {"nodeid": "tests/test_io_utils.py", "outcome": "passed", "result": [{"nodeid": "tests/test_io_utils.py::test_read_file", "type": "Function", "lineno": 9}, {"nodeid": "tests/test_io_utils.py::test_write_file", "type": "Function", "lineno": 16}, {"nodeid": "tests/test_io_utils.py::test_cause_io_error", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_io_utils.py::test_file_not_found", "type": "Function", "lineno": 27}, {"nodeid": "tests/test_io_utils.py::test_permission_error", "type": "Function", "lineno": 32}, {"nodeid": "tests/test_io_utils.py::test_mock_open_error", "type": "Function", "lineno": 40}, {"nodeid": "tests/test_io_utils.py::test_file_handle_closed_error", "type": "Function", "lineno": 49}, {"nodeid": "tests/test_io_utils.py::test_os_error", "type": "Function", "lineno": 56}, {"nodeid": "tests/test_io_utils.py::test_write_file_readonly", "type": "Function", "lineno": 64}, {"nodeid": "tests/test_io_utils.py::test_file_not_found_error", "type": "Function", "lineno": 73}]}, {"nodeid": "tests/test_math_utils.py", "outcome": "passed", "result": [{"nodeid": "tests/test_math_utils.py::test_broken", "type": "Function", "lineno": 13}, {"nodeid": "tests/test_math_utils.py::test_call_missing_function", "type": "Function", "lineno": 17}, {"nodeid": "tests/test_math_utils.py::test_addition_pass", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "type": "Function", "lineno": 26}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "type": "Function", "lineno": 30}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "type": "Function", "lineno": 35}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "type": "Function", "lineno": 40}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "type": "Function", "lineno": 44}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "type": "Function", "lineno": 49}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "type": "Function", "lineno": 54}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "type": "Function", "lineno": 61}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "type": "Function", "lineno": 66}, {"nodeid": "tests/test_math_utils.py::test_value_error", "type": "Function", "lineno": 71}, {"nodeid": "tests/test_math_utils.py::test_type_error", "type": "Function", "lineno": 76}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "type": "Function", "lineno": 81}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "type": "Function", "lineno": 85}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "type": "Function", "lineno": 90}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "type": "Function", "lineno": 94}, {"nodeid": "tests/test_math_utils.py::test_recursion_limit", "type": "Function", "lineno": 104}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "type": "Function", "lineno": 114}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "type": "Function", "lineno": 119}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "type": "Function", "lineno": 127}, {"nodeid": "tests/test_math_utils.py::test_import_error_patch", "type": "Function", "lineno": 135}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "type": "Function", "lineno": 146}]}, {"nodeid": "tests/test_string_utils.py", "outcome": "passed", "result": [{"nodeid": "tests/test_string_utils.py::test_uppercase_normal", "type": "Function", "lineno": 7}, {"nodeid": "tests/test_string_utils.py::test_uppercase_type_error", "type": "Function", "lineno": 11}, {"nodeid": "tests/test_string_utils.py::test_reverse_string", "type": "Function", "lineno": 16}, {"nodeid": "tests/test_string_utils.py::test_warning_emit", "type": "Function", "lineno": 20}, {"nodeid": "tests/test_string_utils.py::test_unicode_encode_error", "type": "Function", "lineno": 24}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_error", "type": "Function", "lineno": 29}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_surrogateescape", "type": "Function", "lineno": 34}, {"nodeid": "tests/test_string_utils.py::test_import_warning", "type": "Function", "lineno": 39}, {"nodeid": "tests/test_string_utils.py::test_xfail_uppercase_digits", "type": "Function", "lineno": 46}]}, {"nodeid": "tests", "outcome": "passed", "result": [{"nodeid": "tests/test_broken_fct.py", "type": "Module"}, {"nodeid": "tests/test_collector_error.py", "type": "Module"}, {"nodeid": "tests/test_io_utils.py", "type": "Module"}, {"nodeid": "tests/test_math_utils.py", "type": "Module"}, {"nodeid": "tests/test_string_utils.py", "type": "Module"}]}, {"nodeid": ".", "outcome": "passed", "result": [{"nodeid": "allure-results", "type": "Dir"}, {"nodeid": "ci-reports", "type": "Dir"}, {"nodeid": "functions", "type": "Package"}, {"nodeid": "tests", "type": "Package"}]}], "tests": [{"nodeid": "tests/test_io_utils.py::test_read_file", "lineno": 9, "outcome": "passed", "keywords": ["test_read_file", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00464572396595031, "outcome": "passed"}, "call": {"duration": 0.0005834490293636918, "outcome": "passed"}, "teardown": {"duration": 0.0015040939906612039, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_write_file", "lineno": 16, "outcome": "passed", "keywords": ["test_write_file", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0008129210909828544, "outcome": "passed"}, "call": {"duration": 0.00036360800731927156, "outcome": "passed"}, "teardown": {"duration": 0.000704035977832973, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_cause_io_error", "lineno": 22, "outcome": "passed", "keywords": ["test_cause_io_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019856798462569714, "outcome": "passed"}, "call": {"duration": 0.0003709479933604598, "outcome": "passed"}, "teardown": {"duration": 0.00021130393724888563, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_file_not_found", "lineno": 27, "outcome": "passed", "keywords": ["test_file_not_found", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018894602544605732, "outcome": "passed"}, "call": {"duration": 0.00021124305203557014, "outcome": "passed"}, "teardown": {"duration": 0.00020395196042954922, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_permission_error", "lineno": 32, "outcome": "passed", "keywords": ["test_permission_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00038915302138775587, "outcome": "passed"}, "call": {"duration": 0.0002270030090585351, "outcome": "passed"}, "teardown": {"duration": 0.000662944046780467, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_mock_open_error", "lineno": 40, "outcome": "passed", "keywords": ["test_mock_open_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0003695060731843114, "outcome": "passed"}, "call": {"duration": 0.008751561981625855, "outcome": "passed"}, "teardown": {"duration": 0.0009123190538957715, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_file_handle_closed_error", "lineno": 49, "outcome": "passed", "keywords": ["test_file_handle_closed_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00020920601673424244, "outcome": "passed"}, "call": {"duration": 0.00019406399223953485, "outcome": "passed"}, "teardown": {"duration": 0.00020421401131898165, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_os_error", "lineno": 56, "outcome": "passed", "keywords": ["test_os_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00040839205030351877, "outcome": "passed"}, "call": {"duration": 0.00021960202138870955, "outcome": "passed"}, "teardown": {"duration": 0.0011805809335783124, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_write_file_readonly", "lineno": 64, "outcome": "failed", "keywords": ["test_write_file_readonly", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0008122080471366644, "outcome": "passed"}, "call": {"duration": 0.001069621997885406, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_io_utils.py", "lineno": 72, "message": "Failed: DID NOT RAISE "}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 72, "message": "Failed"}], "longrepr": "tmp_path = PosixPath('/tmp/pytest-of-root/pytest-0/test_write_file_readonly0')\n\n def test_write_file_readonly(tmp_path):\n # Writing to read-only file raises PermissionError\n file = tmp_path / \"readonly.txt\"\n file.write_text(\"data\")\n os.chmod(file, 0o444)\n with pytest.raises(PermissionError):\n with open(file, \"w\") as f:\n> f.write(\"new content\")\nE Failed: DID NOT RAISE \n\ntests/test_io_utils.py:72: Failed"}, "teardown": {"duration": 0.0008879059460014105, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_file_not_found_error", "lineno": 73, "outcome": "passed", "keywords": ["test_file_not_found_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00022048188839107752, "outcome": "passed"}, "call": {"duration": 0.00022530299611389637, "outcome": "passed"}, "teardown": {"duration": 0.0002069410402327776, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_broken", "lineno": 13, "outcome": "failed", "keywords": ["test_broken", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019576610065996647, "outcome": "passed"}, "call": {"duration": 0.00017970602493733168, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 16, "message": "NameError: name 'want_the_test_to_fail' is not defined"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 16, "message": "NameError"}], "longrepr": "def test_broken():\n # simulating a broken or faulty test implementation that will cause the test to error\n> want_the_test_to_fail\nE NameError: name 'want_the_test_to_fail' is not defined\n\ntests/test_math_utils.py:16: NameError"}, "teardown": {"duration": 0.00031367898918688297, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_call_missing_function", "lineno": 17, "outcome": "passed", "keywords": ["test_call_missing_function", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002209460362792015, "outcome": "passed"}, "call": {"duration": 0.0002094949595630169, "outcome": "passed"}, "teardown": {"duration": 0.00021691399160772562, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018034595996141434, "outcome": "passed"}, "call": {"duration": 0.00017179199494421482, "outcome": "passed"}, "teardown": {"duration": 0.0002088670153170824, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "lineno": 26, "outcome": "failed", "keywords": ["test_addition_fail", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019698194228112698, "outcome": "passed"}, "call": {"duration": 0.0005074499640613794, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 29, "message": "assert 4 == 5\n + where 4 = addition(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 29, "message": "AssertionError"}], "longrepr": "def test_addition_fail():\n # Assertion failure: expected incorrect result\n> assert addition(2, 2) == 5\nE assert 4 == 5\nE + where 4 = addition(2, 2)\n\ntests/test_math_utils.py:29: AssertionError"}, "teardown": {"duration": 0.00027086702175438404, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "lineno": 30, "outcome": "passed", "keywords": ["test_division_zero", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019831606186926365, "outcome": "passed"}, "call": {"duration": 0.00020710192620754242, "outcome": "passed"}, "teardown": {"duration": 0.00020438898354768753, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "lineno": 35, "outcome": "xfailed", "keywords": ["test_multiply_xfail", "xfail", "pytestmark", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00023584009613841772, "outcome": "passed"}, "call": {"duration": 0.0003208710113540292, "outcome": "skipped", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 39, "message": "assert 4 == 5\n + where 4 = multiply(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 39, "message": "AssertionError"}], "longrepr": "@pytest.mark.xfail(reason=\"Expected failure\")\n def test_multiply_xfail():\n # Expected fail test (xfail): incorrect expected multiply result\n> assert multiply(2, 2) == 5\nE assert 4 == 5\nE + where 4 = multiply(2, 2)\n\ntests/test_math_utils.py:39: AssertionError"}, "teardown": {"duration": 0.0003000239375978708, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "lineno": 40, "outcome": "failed", "keywords": ["test_runtime_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019688194151967764, "outcome": "passed"}, "call": {"duration": 0.00019348703790456057, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 43, "message": "RuntimeError: Forced runtime error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 43, "message": "RuntimeError"}], "longrepr": "def test_runtime_error():\n # Test raises an uncaught RuntimeError\n> raise RuntimeError(\"Forced runtime error\")\nE RuntimeError: Forced runtime error\n\ntests/test_math_utils.py:43: RuntimeError"}, "teardown": {"duration": 0.00026913301553577185, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "lineno": 44, "outcome": "passed", "keywords": ["test_memory_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001924070529639721, "outcome": "passed"}, "call": {"duration": 0.00020459899678826332, "outcome": "passed"}, "teardown": {"duration": 0.0002061479026451707, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "lineno": 49, "outcome": "passed", "keywords": ["test_timeout_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002001129323616624, "outcome": "passed"}, "call": {"duration": 0.00018545100465416908, "outcome": "passed"}, "teardown": {"duration": 0.0001969150034710765, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "lineno": 54, "outcome": "passed", "keywords": ["test_recursion_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001715359976515174, "outcome": "passed"}, "call": {"duration": 0.0009691390441730618, "outcome": "passed"}, "teardown": {"duration": 0.00022587704006582499, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "lineno": 61, "outcome": "passed", "keywords": ["test_floating_point_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018580409232527018, "outcome": "passed"}, "call": {"duration": 0.0001717110862955451, "outcome": "passed"}, "teardown": {"duration": 0.00019159005023539066, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "lineno": 66, "outcome": "passed", "keywords": ["test_floating_point_overflow", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017693801783025265, "outcome": "passed"}, "call": {"duration": 0.0001772330142557621, "outcome": "passed"}, "teardown": {"duration": 0.00018927804194390774, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_value_error", "lineno": 71, "outcome": "passed", "keywords": ["test_value_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00016618194058537483, "outcome": "passed"}, "call": {"duration": 0.00018387194722890854, "outcome": "passed"}, "teardown": {"duration": 0.00019145605619996786, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_type_error", "lineno": 76, "outcome": "passed", "keywords": ["test_type_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00016783899627625942, "outcome": "passed"}, "call": {"duration": 0.00016651395708322525, "outcome": "passed"}, "teardown": {"duration": 0.00020786002278327942, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "lineno": 81, "outcome": "failed", "keywords": ["test_unhandled_exception", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017340504564344883, "outcome": "passed"}, "call": {"duration": 0.00017853407189249992, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 84, "message": "Exception: Generic unhandled exception"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 84, "message": "Exception"}], "longrepr": "def test_unhandled_exception():\n # Raises generic unhandled Exception\n> raise Exception(\"Generic unhandled exception\")\nE Exception: Generic unhandled exception\n\ntests/test_math_utils.py:84: Exception"}, "teardown": {"duration": 0.00026646105106920004, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "lineno": 85, "outcome": "passed", "keywords": ["test_custom_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00020283402409404516, "outcome": "passed"}, "call": {"duration": 0.00019422895275056362, "outcome": "passed"}, "teardown": {"duration": 0.00019317097030580044, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "lineno": 90, "outcome": "failed", "keywords": ["test_stop_iteration_direct", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.000183618045412004, "outcome": "passed"}, "call": {"duration": 0.00017739005852490664, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py", "lineno": 880, "message": "RuntimeError: generator raised StopIteration"}, "traceback": [{"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py", "lineno": 341, "message": ""}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py", "lineno": 242, "message": "in "}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/pluggy/_hooks.py", "lineno": 513, "message": "in __call__"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/pluggy/_manager.py", "lineno": 120, "message": "in _hookexec"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py", "lineno": 92, "message": "in pytest_runtest_call"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py", "lineno": 68, "message": "in thread_exception_runtest_hook"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py", "lineno": 95, "message": "in pytest_runtest_call"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py", "lineno": 70, "message": "in unraisable_exception_runtest_hook"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py", "lineno": 846, "message": "in pytest_runtest_call"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py", "lineno": 829, "message": "in _runtest_for"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py", "lineno": 880, "message": "RuntimeError"}], "longrepr": "def test_stop_iteration_direct():\n # Directly raise StopIteration exception\n> raise StopIteration()\nE StopIteration\n\ntests/test_math_utils.py:93: StopIteration\n\nThe above exception was the direct cause of the following exception:\n\ncls = \nfunc = . at 0x7f74c38aff70>\nwhen = 'call'\nreraise = (, )\n\n @classmethod\n def from_call(\n cls,\n func: Callable[[], TResult],\n when: Literal[\"collect\", \"setup\", \"call\", \"teardown\"],\n reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None,\n ) -> CallInfo[TResult]:\n \"\"\"Call func, wrapping the result in a CallInfo.\n \n :param func:\n The function to call. Called without arguments.\n :type func: Callable[[], _pytest.runner.TResult]\n :param when:\n The phase in which the function is called.\n :param reraise:\n Exception or exceptions that shall propagate if raised by the\n function, instead of being wrapped in the CallInfo.\n \"\"\"\n excinfo = None\n start = timing.time()\n precise_start = timing.perf_counter()\n try:\n> result: TResult | None = func()\n\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py:341: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py:242: in \n lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise\n.pixi/envs/default/lib/python3.8/site-packages/pluggy/_hooks.py:513: in __call__\n return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)\n.pixi/envs/default/lib/python3.8/site-packages/pluggy/_manager.py:120: in _hookexec\n return self._inner_hookexec(hook_name, methods, kwargs, firstresult)\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py:92: in pytest_runtest_call\n yield from thread_exception_runtest_hook()\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py:68: in thread_exception_runtest_hook\n yield\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py:95: in pytest_runtest_call\n yield from unraisable_exception_runtest_hook()\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py:70: in unraisable_exception_runtest_hook\n yield\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py:846: in pytest_runtest_call\n yield from self._runtest_for(item, \"call\")\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py:829: in _runtest_for\n yield\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = _capture_fixture=None>\nitem = \n\n @hookimpl(wrapper=True)\n def pytest_runtest_call(self, item: Item) -> Generator[None]:\n with self.item_capture(\"call\", item):\n> return (yield)\nE RuntimeError: generator raised StopIteration\n\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py:880: RuntimeError"}, "teardown": {"duration": 0.0004587490111589432, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "lineno": 94, "outcome": "failed", "keywords": ["test_generator_exit_direct", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.000270336982794106, "outcome": "passed"}, "call": {"duration": 0.00023671297822147608, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 97, "message": "GeneratorExit"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 97, "message": "GeneratorExit"}], "longrepr": "def test_generator_exit_direct():\n # Directly raise GeneratorExit exception\n> raise GeneratorExit()\nE GeneratorExit\n\ntests/test_math_utils.py:97: GeneratorExit"}, "teardown": {"duration": 0.0003299450036138296, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_recursion_limit", "lineno": 104, "outcome": "failed", "keywords": ["test_recursion_limit", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0005128619959577918, "outcome": "passed"}, "call": {"duration": 0.00022203498519957066, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 108, "message": "RecursionError: cannot set the recursion limit to 50 at the recursion depth 37: the limit is too low"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 108, "message": "RecursionError"}], "longrepr": "monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f74c3ced190>\n\n def test_recursion_limit(monkeypatch):\n # Lower recursion limit to force RecursionError on deep recursion\n original_limit = sys.getrecursionlimit()\n> sys.setrecursionlimit(50)\nE RecursionError: cannot set the recursion limit to 50 at the recursion depth 37: the limit is too low\n\ntests/test_math_utils.py:108: RecursionError"}, "teardown": {"duration": 0.000988241983577609, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "lineno": 114, "outcome": "passed", "keywords": ["test_malformed_code", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00022388994693756104, "outcome": "passed"}, "call": {"duration": 0.00022210099268704653, "outcome": "passed"}, "teardown": {"duration": 0.00022886402439326048, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "lineno": 119, "outcome": "passed", "keywords": ["test_sys_exit", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00045825005508959293, "outcome": "passed"}, "call": {"duration": 0.0002114559756591916, "outcome": "passed"}, "teardown": {"duration": 0.0007276840042322874, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "lineno": 127, "outcome": "failed", "keywords": ["test_broken_function", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00036576204001903534, "outcome": "passed"}, "call": {"duration": 0.00019559694919735193, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 132, "message": "AttributeError: 'tests.test_math_utils' has no attribute 'test_broken_function'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 132, "message": "AttributeError"}], "longrepr": "monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f74c3b141f0>\n\n def test_broken_function(monkeypatch):\n # Simulate broken function raising TypeError\n def broken_func(*args, **kwargs):\n raise TypeError(\"Broken function\")\n> monkeypatch.setattr(__name__, \"test_broken_function\", broken_func)\nE AttributeError: 'tests.test_math_utils' has no attribute 'test_broken_function'\n\ntests/test_math_utils.py:132: AttributeError"}, "teardown": {"duration": 0.000836986000649631, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_import_error_patch", "lineno": 135, "outcome": "passed", "keywords": ["test_import_error_patch", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00041261897422373295, "outcome": "passed"}, "call": {"duration": 0.0002588090719655156, "outcome": "passed"}, "teardown": {"duration": 0.0007083290256559849, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "lineno": 146, "outcome": "passed", "keywords": ["test_module_not_found_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00020659796427935362, "outcome": "passed"}, "call": {"duration": 0.0005250299582257867, "outcome": "passed"}, "teardown": {"duration": 0.0002294060541316867, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_uppercase_normal", "lineno": 7, "outcome": "passed", "keywords": ["test_uppercase_normal", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018892192747443914, "outcome": "passed"}, "call": {"duration": 0.00018038798589259386, "outcome": "passed"}, "teardown": {"duration": 0.00020029803272336721, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_uppercase_type_error", "lineno": 11, "outcome": "passed", "keywords": ["test_uppercase_type_error", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017741392366588116, "outcome": "passed"}, "call": {"duration": 0.00018671411089599133, "outcome": "passed"}, "teardown": {"duration": 0.00019175501074641943, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_reverse_string", "lineno": 16, "outcome": "passed", "keywords": ["test_reverse_string", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001810770481824875, "outcome": "passed"}, "call": {"duration": 0.0001728840870782733, "outcome": "passed"}, "teardown": {"duration": 0.00019152299501001835, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_warning_emit", "lineno": 20, "outcome": "passed", "keywords": ["test_warning_emit", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017047300934791565, "outcome": "passed"}, "call": {"duration": 0.0001679499400779605, "outcome": "passed"}, "teardown": {"duration": 0.000202854978851974, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_unicode_encode_error", "lineno": 24, "outcome": "failed", "keywords": ["test_unicode_encode_error", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00016937695909291506, "outcome": "passed"}, "call": {"duration": 0.0002137790434062481, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 28, "message": "Failed: DID NOT RAISE "}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 28, "message": "Failed"}], "longrepr": "def test_unicode_encode_error():\n # UnicodeEncodeError due to decoding malformed surrogate byte\n with pytest.raises(UnicodeEncodeError):\n> b'\\udc80'.decode('utf-8')\nE Failed: DID NOT RAISE \n\ntests/test_string_utils.py:28: Failed"}, "teardown": {"duration": 0.0002529839985072613, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_error", "lineno": 29, "outcome": "passed", "keywords": ["test_unicode_decode_error", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019435002468526363, "outcome": "passed"}, "call": {"duration": 0.0001980530796572566, "outcome": "passed"}, "teardown": {"duration": 0.00019169494044035673, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_surrogateescape", "lineno": 34, "outcome": "passed", "keywords": ["test_unicode_decode_surrogateescape", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018288800492882729, "outcome": "passed"}, "call": {"duration": 0.0001792029943317175, "outcome": "passed"}, "teardown": {"duration": 0.00019428995437920094, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_import_warning", "lineno": 39, "outcome": "passed", "keywords": ["test_import_warning", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019613502081483603, "outcome": "passed"}, "call": {"duration": 0.0001768539659678936, "outcome": "passed"}, "teardown": {"duration": 0.00020290003158152103, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_xfail_uppercase_digits", "lineno": 46, "outcome": "xfailed", "keywords": ["test_xfail_uppercase_digits", "xfail", "pytestmark", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018242094665765762, "outcome": "passed"}, "call": {"duration": 0.0007056340109556913, "outcome": "skipped", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 50, "message": "AssertionError: assert 'ABC123' == 'ABC1234'\n \n - ABC1234\n ? -\n + ABC123"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 50, "message": "AssertionError"}], "longrepr": "@pytest.mark.xfail(reason=\"Expected failure: uppercase does not handle digits\")\n def test_xfail_uppercase_digits():\n # Expected fail test because uppercase won't change digits\n> assert uppercase(\"abc123\") == \"ABC1234\"\nE AssertionError: assert 'ABC123' == 'ABC1234'\nE \nE - ABC1234\nE ? -\nE + ABC123\n\ntests/test_string_utils.py:50: AssertionError"}, "teardown": {"duration": 0.0006596279563382268, "outcome": "passed"}}], "warnings": [{"message": "invalid escape sequence \\u", "category": "DeprecationWarning", "when": "collect", "filename": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 28}, {"message": "Test warning", "category": "UserWarning", "when": "runtest", "filename": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 23}]} \ No newline at end of file +{"created": 1752504559.2179058, "duration": 0.336456298828125, "exitcode": 1, "root": "/workspace/tligui_y/slic", "environment": {}, "summary": {"passed": 31, "failed": 10, "xfailed": 2, "total": 43, "collected": 43}, "collectors": [{"nodeid": "", "outcome": "passed", "result": [{"nodeid": ".", "type": "Dir"}]}, {"nodeid": "allure-results", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/coverage", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/markdown", "outcome": "passed", "result": []}, {"nodeid": "ci-reports", "outcome": "passed", "result": [{"nodeid": "ci-reports/allure", "type": "Dir"}, {"nodeid": "ci-reports/coverage", "type": "Dir"}, {"nodeid": "ci-reports/markdown", "type": "Dir"}]}, {"nodeid": "functions", "outcome": "passed", "result": []}, {"nodeid": "tests/test_broken_fct.py", "outcome": "passed", "result": []}, {"nodeid": "tests/test_collector_error.py", "outcome": "passed", "result": []}, {"nodeid": "tests/test_io_utils.py", "outcome": "passed", "result": [{"nodeid": "tests/test_io_utils.py::test_read_file", "type": "Function", "lineno": 9}, {"nodeid": "tests/test_io_utils.py::test_write_file", "type": "Function", "lineno": 16}, {"nodeid": "tests/test_io_utils.py::test_cause_io_error", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_io_utils.py::test_file_not_found", "type": "Function", "lineno": 27}, {"nodeid": "tests/test_io_utils.py::test_permission_error", "type": "Function", "lineno": 32}, {"nodeid": "tests/test_io_utils.py::test_mock_open_error", "type": "Function", "lineno": 40}, {"nodeid": "tests/test_io_utils.py::test_file_handle_closed_error", "type": "Function", "lineno": 49}, {"nodeid": "tests/test_io_utils.py::test_os_error", "type": "Function", "lineno": 56}, {"nodeid": "tests/test_io_utils.py::test_write_file_readonly", "type": "Function", "lineno": 64}, {"nodeid": "tests/test_io_utils.py::test_file_not_found_error", "type": "Function", "lineno": 73}]}, {"nodeid": "tests/test_math_utils.py", "outcome": "passed", "result": [{"nodeid": "tests/test_math_utils.py::test_broken", "type": "Function", "lineno": 13}, {"nodeid": "tests/test_math_utils.py::test_call_missing_function", "type": "Function", "lineno": 17}, {"nodeid": "tests/test_math_utils.py::test_addition_pass", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "type": "Function", "lineno": 26}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "type": "Function", "lineno": 30}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "type": "Function", "lineno": 35}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "type": "Function", "lineno": 40}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "type": "Function", "lineno": 44}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "type": "Function", "lineno": 49}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "type": "Function", "lineno": 54}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "type": "Function", "lineno": 61}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "type": "Function", "lineno": 66}, {"nodeid": "tests/test_math_utils.py::test_value_error", "type": "Function", "lineno": 71}, {"nodeid": "tests/test_math_utils.py::test_type_error", "type": "Function", "lineno": 76}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "type": "Function", "lineno": 81}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "type": "Function", "lineno": 85}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "type": "Function", "lineno": 90}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "type": "Function", "lineno": 94}, {"nodeid": "tests/test_math_utils.py::test_recursion_limit", "type": "Function", "lineno": 104}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "type": "Function", "lineno": 114}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "type": "Function", "lineno": 119}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "type": "Function", "lineno": 127}, {"nodeid": "tests/test_math_utils.py::test_import_error_patch", "type": "Function", "lineno": 135}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "type": "Function", "lineno": 146}]}, {"nodeid": "tests/test_string_utils.py", "outcome": "passed", "result": [{"nodeid": "tests/test_string_utils.py::test_uppercase_normal", "type": "Function", "lineno": 7}, {"nodeid": "tests/test_string_utils.py::test_uppercase_type_error", "type": "Function", "lineno": 11}, {"nodeid": "tests/test_string_utils.py::test_reverse_string", "type": "Function", "lineno": 16}, {"nodeid": "tests/test_string_utils.py::test_warning_emit", "type": "Function", "lineno": 20}, {"nodeid": "tests/test_string_utils.py::test_unicode_encode_error", "type": "Function", "lineno": 24}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_error", "type": "Function", "lineno": 29}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_surrogateescape", "type": "Function", "lineno": 34}, {"nodeid": "tests/test_string_utils.py::test_import_warning", "type": "Function", "lineno": 39}, {"nodeid": "tests/test_string_utils.py::test_xfail_uppercase_digits", "type": "Function", "lineno": 46}]}, {"nodeid": "tests", "outcome": "passed", "result": [{"nodeid": "tests/test_broken_fct.py", "type": "Module"}, {"nodeid": "tests/test_collector_error.py", "type": "Module"}, {"nodeid": "tests/test_io_utils.py", "type": "Module"}, {"nodeid": "tests/test_math_utils.py", "type": "Module"}, {"nodeid": "tests/test_string_utils.py", "type": "Module"}]}, {"nodeid": ".", "outcome": "passed", "result": [{"nodeid": "allure-results", "type": "Dir"}, {"nodeid": "ci-reports", "type": "Dir"}, {"nodeid": "functions", "type": "Package"}, {"nodeid": "tests", "type": "Package"}]}], "tests": [{"nodeid": "tests/test_io_utils.py::test_read_file", "lineno": 9, "outcome": "passed", "keywords": ["test_read_file", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.004617957049049437, "outcome": "passed"}, "call": {"duration": 0.0007563600083813071, "outcome": "passed"}, "teardown": {"duration": 0.001968709984794259, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_write_file", "lineno": 16, "outcome": "passed", "keywords": ["test_write_file", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0008771360153332353, "outcome": "passed"}, "call": {"duration": 0.0004011469427496195, "outcome": "passed"}, "teardown": {"duration": 0.0007910049753263593, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_cause_io_error", "lineno": 22, "outcome": "passed", "keywords": ["test_cause_io_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00020500796381384134, "outcome": "passed"}, "call": {"duration": 0.00038874102756381035, "outcome": "passed"}, "teardown": {"duration": 0.00022134999744594097, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_file_not_found", "lineno": 27, "outcome": "passed", "keywords": ["test_file_not_found", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002105889143422246, "outcome": "passed"}, "call": {"duration": 0.0002573719248175621, "outcome": "passed"}, "teardown": {"duration": 0.00020847294945269823, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_permission_error", "lineno": 32, "outcome": "passed", "keywords": ["test_permission_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0003949750680476427, "outcome": "passed"}, "call": {"duration": 0.00022938300389796495, "outcome": "passed"}, "teardown": {"duration": 0.0006894280668348074, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_mock_open_error", "lineno": 40, "outcome": "passed", "keywords": ["test_mock_open_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0003616049652919173, "outcome": "passed"}, "call": {"duration": 0.008984648040495813, "outcome": "passed"}, "teardown": {"duration": 0.0010357450228184462, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_file_handle_closed_error", "lineno": 49, "outcome": "passed", "keywords": ["test_file_handle_closed_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0003494380507618189, "outcome": "passed"}, "call": {"duration": 0.00038097798824310303, "outcome": "passed"}, "teardown": {"duration": 0.00035712902899831533, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_os_error", "lineno": 56, "outcome": "passed", "keywords": ["test_os_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0004639779217541218, "outcome": "passed"}, "call": {"duration": 0.0002484070137143135, "outcome": "passed"}, "teardown": {"duration": 0.0008254030253738165, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_write_file_readonly", "lineno": 64, "outcome": "failed", "keywords": ["test_write_file_readonly", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0008101530838757753, "outcome": "passed"}, "call": {"duration": 0.0014078549575060606, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_io_utils.py", "lineno": 72, "message": "Failed: DID NOT RAISE "}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 72, "message": "Failed"}], "longrepr": "tmp_path = PosixPath('/tmp/pytest-of-root/pytest-0/test_write_file_readonly0')\n\n def test_write_file_readonly(tmp_path):\n # Writing to read-only file raises PermissionError\n file = tmp_path / \"readonly.txt\"\n file.write_text(\"data\")\n os.chmod(file, 0o444)\n with pytest.raises(PermissionError):\n with open(file, \"w\") as f:\n> f.write(\"new content\")\nE Failed: DID NOT RAISE \n\ntests/test_io_utils.py:72: Failed"}, "teardown": {"duration": 0.0011783690424636006, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_file_not_found_error", "lineno": 73, "outcome": "passed", "keywords": ["test_file_not_found_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0003002990270033479, "outcome": "passed"}, "call": {"duration": 0.00027706497348845005, "outcome": "passed"}, "teardown": {"duration": 0.0002547380281612277, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_broken", "lineno": 13, "outcome": "failed", "keywords": ["test_broken", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00021702505182474852, "outcome": "passed"}, "call": {"duration": 0.00020137301180511713, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 16, "message": "NameError: name 'want_the_test_to_fail' is not defined"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 16, "message": "NameError"}], "longrepr": "def test_broken():\n # simulating a broken or faulty test implementation that will cause the test to error\n> want_the_test_to_fail\nE NameError: name 'want_the_test_to_fail' is not defined\n\ntests/test_math_utils.py:16: NameError"}, "teardown": {"duration": 0.0002840820234268904, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_call_missing_function", "lineno": 17, "outcome": "passed", "keywords": ["test_call_missing_function", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00020222098100930452, "outcome": "passed"}, "call": {"duration": 0.00020369794219732285, "outcome": "passed"}, "teardown": {"duration": 0.0002168810460716486, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001713009551167488, "outcome": "passed"}, "call": {"duration": 0.00017264601774513721, "outcome": "passed"}, "teardown": {"duration": 0.00019882700871676207, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "lineno": 26, "outcome": "failed", "keywords": ["test_addition_fail", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017807807307690382, "outcome": "passed"}, "call": {"duration": 0.0005174310645088553, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 29, "message": "assert 4 == 5\n + where 4 = addition(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 29, "message": "AssertionError"}], "longrepr": "def test_addition_fail():\n # Assertion failure: expected incorrect result\n> assert addition(2, 2) == 5\nE assert 4 == 5\nE + where 4 = addition(2, 2)\n\ntests/test_math_utils.py:29: AssertionError"}, "teardown": {"duration": 0.0002676490694284439, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "lineno": 30, "outcome": "passed", "keywords": ["test_division_zero", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00021640502382069826, "outcome": "passed"}, "call": {"duration": 0.00021836801897734404, "outcome": "passed"}, "teardown": {"duration": 0.000205551041290164, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "lineno": 35, "outcome": "xfailed", "keywords": ["test_multiply_xfail", "xfail", "pytestmark", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019142404198646545, "outcome": "passed"}, "call": {"duration": 0.00033608300145715475, "outcome": "skipped", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 39, "message": "assert 4 == 5\n + where 4 = multiply(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 39, "message": "AssertionError"}], "longrepr": "@pytest.mark.xfail(reason=\"Expected failure\")\n def test_multiply_xfail():\n # Expected fail test (xfail): incorrect expected multiply result\n> assert multiply(2, 2) == 5\nE assert 4 == 5\nE + where 4 = multiply(2, 2)\n\ntests/test_math_utils.py:39: AssertionError"}, "teardown": {"duration": 0.00027862098067998886, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "lineno": 40, "outcome": "failed", "keywords": ["test_runtime_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001908650156110525, "outcome": "passed"}, "call": {"duration": 0.0001916420878842473, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 43, "message": "RuntimeError: Forced runtime error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 43, "message": "RuntimeError"}], "longrepr": "def test_runtime_error():\n # Test raises an uncaught RuntimeError\n> raise RuntimeError(\"Forced runtime error\")\nE RuntimeError: Forced runtime error\n\ntests/test_math_utils.py:43: RuntimeError"}, "teardown": {"duration": 0.00028797995764762163, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "lineno": 44, "outcome": "passed", "keywords": ["test_memory_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00021353899501264095, "outcome": "passed"}, "call": {"duration": 0.00021349499002099037, "outcome": "passed"}, "teardown": {"duration": 0.0002029439201578498, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "lineno": 49, "outcome": "passed", "keywords": ["test_timeout_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018743996042758226, "outcome": "passed"}, "call": {"duration": 0.00019482697825878859, "outcome": "passed"}, "teardown": {"duration": 0.00019577005878090858, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "lineno": 54, "outcome": "passed", "keywords": ["test_recursion_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001702549634501338, "outcome": "passed"}, "call": {"duration": 0.0009700659429654479, "outcome": "passed"}, "teardown": {"duration": 0.00021042500156909227, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "lineno": 61, "outcome": "passed", "keywords": ["test_floating_point_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017369503621011972, "outcome": "passed"}, "call": {"duration": 0.00017163902521133423, "outcome": "passed"}, "teardown": {"duration": 0.00019572698511183262, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "lineno": 66, "outcome": "passed", "keywords": ["test_floating_point_overflow", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018243491649627686, "outcome": "passed"}, "call": {"duration": 0.00019519601482897997, "outcome": "passed"}, "teardown": {"duration": 0.00018651701975613832, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_value_error", "lineno": 71, "outcome": "passed", "keywords": ["test_value_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017865491099655628, "outcome": "passed"}, "call": {"duration": 0.00018100603483617306, "outcome": "passed"}, "teardown": {"duration": 0.00019195699132978916, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_type_error", "lineno": 76, "outcome": "passed", "keywords": ["test_type_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00016721209976822138, "outcome": "passed"}, "call": {"duration": 0.000178205082193017, "outcome": "passed"}, "teardown": {"duration": 0.00019070098642259836, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "lineno": 81, "outcome": "failed", "keywords": ["test_unhandled_exception", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00016916892491281033, "outcome": "passed"}, "call": {"duration": 0.00018182303756475449, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 84, "message": "Exception: Generic unhandled exception"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 84, "message": "Exception"}], "longrepr": "def test_unhandled_exception():\n # Raises generic unhandled Exception\n> raise Exception(\"Generic unhandled exception\")\nE Exception: Generic unhandled exception\n\ntests/test_math_utils.py:84: Exception"}, "teardown": {"duration": 0.00032364693470299244, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "lineno": 85, "outcome": "passed", "keywords": ["test_custom_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00023506605066359043, "outcome": "passed"}, "call": {"duration": 0.00021719001233577728, "outcome": "passed"}, "teardown": {"duration": 0.00021374609787017107, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "lineno": 90, "outcome": "failed", "keywords": ["test_stop_iteration_direct", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018157996237277985, "outcome": "passed"}, "call": {"duration": 0.0001949709840118885, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py", "lineno": 880, "message": "RuntimeError: generator raised StopIteration"}, "traceback": [{"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py", "lineno": 341, "message": ""}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py", "lineno": 242, "message": "in "}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/pluggy/_hooks.py", "lineno": 513, "message": "in __call__"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/pluggy/_manager.py", "lineno": 120, "message": "in _hookexec"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py", "lineno": 92, "message": "in pytest_runtest_call"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py", "lineno": 68, "message": "in thread_exception_runtest_hook"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py", "lineno": 95, "message": "in pytest_runtest_call"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py", "lineno": 70, "message": "in unraisable_exception_runtest_hook"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py", "lineno": 846, "message": "in pytest_runtest_call"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py", "lineno": 829, "message": "in _runtest_for"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py", "lineno": 880, "message": "RuntimeError"}], "longrepr": "def test_stop_iteration_direct():\n # Directly raise StopIteration exception\n> raise StopIteration()\nE StopIteration\n\ntests/test_math_utils.py:93: StopIteration\n\nThe above exception was the direct cause of the following exception:\n\ncls = \nfunc = . at 0x7f44671f3f70>\nwhen = 'call'\nreraise = (, )\n\n @classmethod\n def from_call(\n cls,\n func: Callable[[], TResult],\n when: Literal[\"collect\", \"setup\", \"call\", \"teardown\"],\n reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None,\n ) -> CallInfo[TResult]:\n \"\"\"Call func, wrapping the result in a CallInfo.\n \n :param func:\n The function to call. Called without arguments.\n :type func: Callable[[], _pytest.runner.TResult]\n :param when:\n The phase in which the function is called.\n :param reraise:\n Exception or exceptions that shall propagate if raised by the\n function, instead of being wrapped in the CallInfo.\n \"\"\"\n excinfo = None\n start = timing.time()\n precise_start = timing.perf_counter()\n try:\n> result: TResult | None = func()\n\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py:341: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py:242: in \n lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise\n.pixi/envs/default/lib/python3.8/site-packages/pluggy/_hooks.py:513: in __call__\n return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)\n.pixi/envs/default/lib/python3.8/site-packages/pluggy/_manager.py:120: in _hookexec\n return self._inner_hookexec(hook_name, methods, kwargs, firstresult)\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py:92: in pytest_runtest_call\n yield from thread_exception_runtest_hook()\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py:68: in thread_exception_runtest_hook\n yield\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py:95: in pytest_runtest_call\n yield from unraisable_exception_runtest_hook()\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py:70: in unraisable_exception_runtest_hook\n yield\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py:846: in pytest_runtest_call\n yield from self._runtest_for(item, \"call\")\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py:829: in _runtest_for\n yield\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = _capture_fixture=None>\nitem = \n\n @hookimpl(wrapper=True)\n def pytest_runtest_call(self, item: Item) -> Generator[None]:\n with self.item_capture(\"call\", item):\n> return (yield)\nE RuntimeError: generator raised StopIteration\n\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py:880: RuntimeError"}, "teardown": {"duration": 0.00045209890231490135, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "lineno": 94, "outcome": "failed", "keywords": ["test_generator_exit_direct", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00028916297014802694, "outcome": "passed"}, "call": {"duration": 0.0002249880926683545, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 97, "message": "GeneratorExit"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 97, "message": "GeneratorExit"}], "longrepr": "def test_generator_exit_direct():\n # Directly raise GeneratorExit exception\n> raise GeneratorExit()\nE GeneratorExit\n\ntests/test_math_utils.py:97: GeneratorExit"}, "teardown": {"duration": 0.00042971898801624775, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_recursion_limit", "lineno": 104, "outcome": "failed", "keywords": ["test_recursion_limit", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0005874220514670014, "outcome": "passed"}, "call": {"duration": 0.0002511070342734456, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 108, "message": "RecursionError: cannot set the recursion limit to 50 at the recursion depth 37: the limit is too low"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 108, "message": "RecursionError"}], "longrepr": "monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f4466ebfbb0>\n\n def test_recursion_limit(monkeypatch):\n # Lower recursion limit to force RecursionError on deep recursion\n original_limit = sys.getrecursionlimit()\n> sys.setrecursionlimit(50)\nE RecursionError: cannot set the recursion limit to 50 at the recursion depth 37: the limit is too low\n\ntests/test_math_utils.py:108: RecursionError"}, "teardown": {"duration": 0.0011272020637989044, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "lineno": 114, "outcome": "passed", "keywords": ["test_malformed_code", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0004258720437064767, "outcome": "passed"}, "call": {"duration": 0.00033950200304389, "outcome": "passed"}, "teardown": {"duration": 0.0003007430350407958, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "lineno": 119, "outcome": "passed", "keywords": ["test_sys_exit", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0005719750188291073, "outcome": "passed"}, "call": {"duration": 0.00030105304904282093, "outcome": "passed"}, "teardown": {"duration": 0.0009949709055945277, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "lineno": 127, "outcome": "failed", "keywords": ["test_broken_function", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0004778510192409158, "outcome": "passed"}, "call": {"duration": 0.00024109298828989267, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 132, "message": "AttributeError: 'tests.test_math_utils' has no attribute 'test_broken_function'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 132, "message": "AttributeError"}], "longrepr": "monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f4466cd3370>\n\n def test_broken_function(monkeypatch):\n # Simulate broken function raising TypeError\n def broken_func(*args, **kwargs):\n raise TypeError(\"Broken function\")\n> monkeypatch.setattr(__name__, \"test_broken_function\", broken_func)\nE AttributeError: 'tests.test_math_utils' has no attribute 'test_broken_function'\n\ntests/test_math_utils.py:132: AttributeError"}, "teardown": {"duration": 0.0011143990559503436, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_import_error_patch", "lineno": 135, "outcome": "passed", "keywords": ["test_import_error_patch", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0005372470477595925, "outcome": "passed"}, "call": {"duration": 0.00029834092129021883, "outcome": "passed"}, "teardown": {"duration": 0.0008468080777674913, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "lineno": 146, "outcome": "passed", "keywords": ["test_module_not_found_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00022685702424496412, "outcome": "passed"}, "call": {"duration": 0.0005564079619944096, "outcome": "passed"}, "teardown": {"duration": 0.0002461819676682353, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_uppercase_normal", "lineno": 7, "outcome": "passed", "keywords": ["test_uppercase_normal", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00020473904442042112, "outcome": "passed"}, "call": {"duration": 0.00019969302229583263, "outcome": "passed"}, "teardown": {"duration": 0.00021990295499563217, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_uppercase_type_error", "lineno": 11, "outcome": "passed", "keywords": ["test_uppercase_type_error", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001893759472295642, "outcome": "passed"}, "call": {"duration": 0.00020406197290867567, "outcome": "passed"}, "teardown": {"duration": 0.00021910399664193392, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_reverse_string", "lineno": 16, "outcome": "passed", "keywords": ["test_reverse_string", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019783899188041687, "outcome": "passed"}, "call": {"duration": 0.00017716700676828623, "outcome": "passed"}, "teardown": {"duration": 0.00021673704031854868, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_warning_emit", "lineno": 20, "outcome": "passed", "keywords": ["test_warning_emit", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018432794604450464, "outcome": "passed"}, "call": {"duration": 0.0001793659757822752, "outcome": "passed"}, "teardown": {"duration": 0.00020071305334568024, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_unicode_encode_error", "lineno": 24, "outcome": "failed", "keywords": ["test_unicode_encode_error", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00020313996355980635, "outcome": "passed"}, "call": {"duration": 0.00021908094640821218, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 28, "message": "Failed: DID NOT RAISE "}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 28, "message": "Failed"}], "longrepr": "def test_unicode_encode_error():\n # UnicodeEncodeError due to decoding malformed surrogate byte\n with pytest.raises(UnicodeEncodeError):\n> b'\\udc80'.decode('utf-8')\nE Failed: DID NOT RAISE \n\ntests/test_string_utils.py:28: Failed"}, "teardown": {"duration": 0.00027646799571812153, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_error", "lineno": 29, "outcome": "passed", "keywords": ["test_unicode_decode_error", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019783200696110725, "outcome": "passed"}, "call": {"duration": 0.00022565096151083708, "outcome": "passed"}, "teardown": {"duration": 0.00021274294704198837, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_surrogateescape", "lineno": 34, "outcome": "passed", "keywords": ["test_unicode_decode_surrogateescape", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018940994050353765, "outcome": "passed"}, "call": {"duration": 0.0001975309569388628, "outcome": "passed"}, "teardown": {"duration": 0.00021336192730814219, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_import_warning", "lineno": 39, "outcome": "passed", "keywords": ["test_import_warning", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018640700727701187, "outcome": "passed"}, "call": {"duration": 0.0002527860924601555, "outcome": "passed"}, "teardown": {"duration": 0.00025885901413857937, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_xfail_uppercase_digits", "lineno": 46, "outcome": "xfailed", "keywords": ["test_xfail_uppercase_digits", "xfail", "pytestmark", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002366849221289158, "outcome": "passed"}, "call": {"duration": 0.0008762630168348551, "outcome": "skipped", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 50, "message": "AssertionError: assert 'ABC123' == 'ABC1234'\n \n - ABC1234\n ? -\n + ABC123"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 50, "message": "AssertionError"}], "longrepr": "@pytest.mark.xfail(reason=\"Expected failure: uppercase does not handle digits\")\n def test_xfail_uppercase_digits():\n # Expected fail test because uppercase won't change digits\n> assert uppercase(\"abc123\") == \"ABC1234\"\nE AssertionError: assert 'ABC123' == 'ABC1234'\nE \nE - ABC1234\nE ? -\nE + ABC123\n\ntests/test_string_utils.py:50: AssertionError"}, "teardown": {"duration": 0.0012361010303720832, "outcome": "passed"}}], "warnings": [{"message": "invalid escape sequence \\u", "category": "DeprecationWarning", "when": "collect", "filename": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 28}, {"message": "Test warning", "category": "UserWarning", "when": "runtest", "filename": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 23}]} \ No newline at end of file