diff --git a/ci-reports/markdown/TEST-REPORT.md b/ci-reports/markdown/TEST-REPORT.md index e18c9272b..2b8995d88 100644 --- a/ci-reports/markdown/TEST-REPORT.md +++ b/ci-reports/markdown/TEST-REPORT.md @@ -5,7 +5,7 @@ โ„น๏ธ *Note: The test suite was interrupted at this point. Only the results of the tests executed **before** are shown below.*--- # ๐Ÿงช Test Report -*Generated on 2025-07-14 15:01:58* +*Generated on 2025-07-14 15:07:39* ## ๐Ÿ“‹ Summary - **Passed**: `32` @@ -13,7 +13,7 @@ - **Xfailed**: `2` - **Total**: `44` - **Collected**: `44` -- **Total Duration**: `0.519`s +- **Total Duration**: `0.536`s ## ๐Ÿ”Ž Tests
@@ -29,7 +29,7 @@ โœ… #1 - **Status:** โœ… `passed` -- **Duration:** `0.000734` s +- **Duration:** `0.000676` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -38,7 +38,7 @@ ๐Ÿ“Œ Duration ``` -0.004562731948681176 +0.004319166066125035 ```
@@ -57,7 +57,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0007340880110859871 +0.0006764919962733984 ``` @@ -76,7 +76,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0013196360087022185 +0.0013043599901720881 ``` @@ -108,7 +108,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0008059421088546515 +0.000763376010581851 ``` @@ -127,7 +127,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0003640101058408618 +0.0003638649359345436 ``` @@ -146,7 +146,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0007294530514627695 +0.0007649631006643176 ``` @@ -169,7 +169,7 @@ passed โœ… #3 - **Status:** โœ… `passed` -- **Duration:** `0.000386` s +- **Duration:** `0.000389` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -178,7 +178,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019526307005435228 +0.00019885296933352947 ``` @@ -197,7 +197,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00038621295243501663 +0.0003894190303981304 ``` @@ -216,7 +216,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00022859103046357632 +0.00023031095042824745 ``` @@ -239,7 +239,7 @@ passed โœ… #4 - **Status:** โœ… `passed` -- **Duration:** `0.000209` s +- **Duration:** `0.000213` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -248,7 +248,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018114503473043442 +0.0001942949602380395 ``` @@ -267,7 +267,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00020871509332209826 +0.00021292094606906176 ``` @@ -286,7 +286,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002084749285131693 +0.0002147359773516655 ``` @@ -309,7 +309,7 @@ passed โœ… #5 - **Status:** โœ… `passed` -- **Duration:** `0.000260` s +- **Duration:** `0.000228` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -318,7 +318,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00041688792407512665 +0.00038975197821855545 ``` @@ -337,7 +337,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002599110594019294 +0.00022796099074184895 ``` @@ -356,7 +356,7 @@ passed ๐Ÿ“Œ Duration ``` -0.000694810994900763 +0.0007063760422170162 ``` @@ -379,7 +379,7 @@ passed โœ… #6 - **Status:** โœ… `passed` -- **Duration:** `0.009008` s +- **Duration:** `0.008759` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -388,7 +388,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00035414600279182196 +0.00038235296960920095 ``` @@ -407,7 +407,7 @@ passed ๐Ÿ“Œ Duration ``` -0.009008038090541959 +0.008758742013014853 ``` @@ -426,7 +426,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0010956129990518093 +0.0009671000298112631 ``` @@ -449,7 +449,7 @@ passed โœ… #7 - **Status:** โœ… `passed` -- **Duration:** `0.000220` s +- **Duration:** `0.000208` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -458,7 +458,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002472109626978636 +0.00022764294408261776 ``` @@ -477,7 +477,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00022015103604644537 +0.0002076339442282915 ``` @@ -496,7 +496,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00023233296815305948 +0.0002458119997754693 ``` @@ -519,7 +519,7 @@ passed โœ… #8 - **Status:** โœ… `passed` -- **Duration:** `0.000225` s +- **Duration:** `0.000220` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -528,7 +528,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00043045799247920513 +0.00043332111090421677 ``` @@ -547,7 +547,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00022502103820443153 +0.0002204329939559102 ``` @@ -566,7 +566,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0012795600341632962 +0.0008052689954638481 ``` @@ -589,7 +589,7 @@ passed โœ… #10 - **Status:** โœ… `passed` -- **Duration:** `0.000256` s +- **Duration:** `0.000236` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -598,7 +598,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002587450435385108 +0.0002452210756018758 ``` @@ -617,7 +617,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00025621894747018814 +0.0002358719939365983 ``` @@ -636,7 +636,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00023103097919374704 +0.0002314849989488721 ``` @@ -664,7 +664,7 @@ passed โœ… #12 - **Status:** โœ… `passed` -- **Duration:** `0.000422` s +- **Duration:** `0.000206` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -673,7 +673,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00038777198642492294 +0.00019396701827645302 ``` @@ -692,7 +692,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00042227504309266806 +0.00020638201385736465 ``` @@ -711,7 +711,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0004565460840240121 +0.00021761097013950348 ``` @@ -734,7 +734,7 @@ passed โœ… #13 - **Status:** โœ… `passed` -- **Duration:** `0.000330` s +- **Duration:** `0.000161` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -743,7 +743,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00035907700657844543 +0.00018960703164339066 ``` @@ -762,7 +762,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0003296950599178672 +0.00016143906395882368 ``` @@ -781,7 +781,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00037616409827023745 +0.00018853903748095036 ``` @@ -804,7 +804,7 @@ passed โœ… #15 - **Status:** โœ… `passed` -- **Duration:** `0.000220` s +- **Duration:** `0.000212` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -813,7 +813,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00022742804139852524 +0.0001958259381353855 ``` @@ -832,7 +832,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00021972507238388062 +0.0002120930003002286 ``` @@ -851,7 +851,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00022528006229549646 +0.00020524300634860992 ``` @@ -874,7 +874,7 @@ passed โœ… #18 - **Status:** โœ… `passed` -- **Duration:** `0.000219` s +- **Duration:** `0.000222` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -883,7 +883,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019985006656497717 +0.00019159901421517134 ``` @@ -902,7 +902,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00021901295986026525 +0.0002216440625488758 ``` @@ -921,7 +921,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00023016100749373436 +0.00020904408302158117 ``` @@ -944,7 +944,7 @@ passed โœ… #19 - **Status:** โœ… `passed` -- **Duration:** `0.000185` s +- **Duration:** `0.000180` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -953,7 +953,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019142008386552334 +0.00018239603377878666 ``` @@ -972,7 +972,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018502201419323683 +0.0001796680735424161 ``` @@ -991,7 +991,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00021833297796547413 +0.00021258892957121134 ``` @@ -1014,7 +1014,7 @@ passed โœ… #20 - **Status:** โœ… `passed` -- **Duration:** `0.000982` s +- **Duration:** `0.000898` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1023,7 +1023,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018680794164538383 +0.00017800298519432545 ``` @@ -1042,7 +1042,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0009818379767239094 +0.0008981979917734861 ``` @@ -1061,7 +1061,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00021722004748880863 +0.00020574999507516623 ``` @@ -1084,7 +1084,7 @@ passed โœ… #21 - **Status:** โœ… `passed` -- **Duration:** `0.000178` s +- **Duration:** `0.000174` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1093,7 +1093,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00017529295291751623 +0.00019188295118510723 ``` @@ -1112,7 +1112,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001779539743438363 +0.00017362507060170174 ``` @@ -1131,7 +1131,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00022621103562414646 +0.00019297702237963676 ``` @@ -1154,7 +1154,7 @@ passed โœ… #22 - **Status:** โœ… `passed` -- **Duration:** `0.000240` s +- **Duration:** `0.000201` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1163,7 +1163,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00020470703020691872 +0.00016533094458281994 ``` @@ -1182,7 +1182,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00024001009296625853 +0.00020088895689696074 ``` @@ -1201,7 +1201,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002273881109431386 +0.0001975370105355978 ``` @@ -1224,7 +1224,7 @@ passed โœ… #23 - **Status:** โœ… `passed` -- **Duration:** `0.000255` s +- **Duration:** `0.000173` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1233,7 +1233,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00017526396550238132 +0.00018526904750615358 ``` @@ -1252,7 +1252,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002551979850977659 +0.0001731810625642538 ``` @@ -1271,7 +1271,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00023183505982160568 +0.00019710010383278131 ``` @@ -1294,7 +1294,7 @@ passed โœ… #24 - **Status:** โœ… `passed` -- **Duration:** `0.000196` s +- **Duration:** `0.000170` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1303,7 +1303,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001771050738170743 +0.00017143203876912594 ``` @@ -1322,7 +1322,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019596703350543976 +0.00017032597679644823 ``` @@ -1341,7 +1341,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00022342801094055176 +0.00018972600810229778 ``` @@ -1364,7 +1364,7 @@ passed โœ… #26 - **Status:** โœ… `passed` -- **Duration:** `0.000201` s +- **Duration:** `0.000189` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1373,7 +1373,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002143949968740344 +0.0001893111038953066 ``` @@ -1392,7 +1392,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00020109291654080153 +0.00018910004291683435 ``` @@ -1411,7 +1411,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00021340989042073488 +0.00019367202185094357 ``` @@ -1434,7 +1434,7 @@ passed โœ… #30 - **Status:** โœ… `passed` -- **Duration:** `0.000222` s +- **Duration:** `0.000259` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1443,7 +1443,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00021246797405183315 +0.00021684798412024975 ``` @@ -1462,7 +1462,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00022198003716766834 +0.0002587799681350589 ``` @@ -1481,7 +1481,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00023690005764365196 +0.0002245329087600112 ``` @@ -1504,7 +1504,7 @@ passed โœ… #31 - **Status:** โœ… `passed` -- **Duration:** `0.000208` s +- **Duration:** `0.000229` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1513,7 +1513,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0004253590013831854 +0.00041965197306126356 ``` @@ -1532,7 +1532,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00020751799456775188 +0.00022927799727767706 ``` @@ -1551,7 +1551,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0007330860244110227 +0.0007050889544188976 ``` @@ -1574,7 +1574,7 @@ passed โœ… #33 - **Status:** โœ… `passed` -- **Duration:** `0.000242` s +- **Duration:** `0.000241` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1583,7 +1583,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00037844397593289614 +0.0004198080860078335 ``` @@ -1602,7 +1602,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00024243502411991358 +0.00024148798547685146 ``` @@ -1621,7 +1621,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0006704980041831732 +0.0006796489469707012 ``` @@ -1644,7 +1644,7 @@ passed โœ… #34 - **Status:** โœ… `passed` -- **Duration:** `0.000508` s +- **Duration:** `0.000482` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1653,7 +1653,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018730491865426302 +0.00018812797497957945 ``` @@ -1672,7 +1672,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0005077519454061985 +0.0004820440663024783 ``` @@ -1691,7 +1691,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002091370988637209 +0.00020934396889060736 ``` @@ -1719,7 +1719,7 @@ passed โœ… #35 - **Status:** โœ… `passed` -- **Duration:** `0.000168` s +- **Duration:** `0.000171` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1728,7 +1728,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019157398492097855 +0.0002093031071126461 ``` @@ -1747,7 +1747,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00016799499280750751 +0.00017106602899730206 ``` @@ -1766,7 +1766,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001992810284718871 +0.00019683502614498138 ``` @@ -1789,7 +1789,7 @@ passed โœ… #36 - **Status:** โœ… `passed` -- **Duration:** `0.000193` s +- **Duration:** `0.000182` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1798,7 +1798,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019321299623697996 +0.0001815460855141282 ``` @@ -1817,7 +1817,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001929049612954259 +0.00018166203517466784 ``` @@ -1836,7 +1836,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019699707627296448 +0.0001975720515474677 ``` @@ -1859,7 +1859,7 @@ passed โœ… #37 - **Status:** โœ… `passed` -- **Duration:** `0.000160` s +- **Duration:** `0.000157` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1868,7 +1868,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001814250135794282 +0.00018906500190496445 ``` @@ -1887,7 +1887,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001601940020918846 +0.0001571140019223094 ``` @@ -1906,7 +1906,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019928696565330029 +0.00019202707335352898 ``` @@ -1929,7 +1929,7 @@ passed โœ… #38 - **Status:** โœ… `passed` -- **Duration:** `0.000180` s +- **Duration:** `0.000164` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -1938,7 +1938,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00017990299966186285 +0.00016784202307462692 ``` @@ -1957,7 +1957,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00017951102927327156 +0.00016418390441685915 ``` @@ -1976,7 +1976,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019493105355650187 +0.000198079040274024 ``` @@ -1999,7 +1999,7 @@ passed โœ… #40 - **Status:** โœ… `passed` -- **Duration:** `0.000201` s +- **Duration:** `0.000191` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -2008,7 +2008,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019003800116479397 +0.00018763297703117132 ``` @@ -2027,7 +2027,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00020148896146565676 +0.00019135407637804747 ``` @@ -2046,7 +2046,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00020431901793926954 +0.0003013749374076724 ``` @@ -2069,7 +2069,7 @@ passed โœ… #41 - **Status:** โœ… `passed` -- **Duration:** `0.000186` s +- **Duration:** `0.000185` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -2078,7 +2078,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001875460147857666 +0.00019287096802145243 ``` @@ -2097,7 +2097,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018628104589879513 +0.0001845840597525239 ``` @@ -2116,7 +2116,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00020486698485910892 +0.0001925359247252345 ``` @@ -2139,7 +2139,7 @@ passed โœ… #42 - **Status:** โœ… `passed` -- **Duration:** `0.000175` s +- **Duration:** `0.000184` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -2148,7 +2148,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018295994959771633 +0.0001850150292739272 ``` @@ -2167,7 +2167,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00017491099424660206 +0.00018360302783548832 ``` @@ -2186,7 +2186,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00020263297483325005 +0.00020818598568439484 ``` @@ -2218,7 +2218,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019959802739322186 +0.00019388203509151936 ``` @@ -2251,7 +2251,7 @@ passed โŒ #9 - **Status:** โŒ `failed` -- **Duration:** `0.001096` s +- **Duration:** `0.005902` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -2260,7 +2260,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0008311989950016141 +0.0008173550013452768 ``` @@ -2279,7 +2279,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0010962520027533174 +0.005901793949306011 ``` @@ -2338,7 +2338,7 @@ tests/test_io_utils.py:72: Failed ๐Ÿ“Œ Duration ``` -0.0010756140109151602 +0.0010716558899730444 ``` @@ -2366,7 +2366,7 @@ passed โŒ #11 - **Status:** โŒ `failed` -- **Duration:** `0.000196` s +- **Duration:** `0.000187` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -2375,7 +2375,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002190619707107544 +0.0002045509172603488 ``` @@ -2394,7 +2394,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019641895778477192 +0.00018669897690415382 ``` @@ -2446,7 +2446,7 @@ tests/test_math_utils.py:16: NameError ๐Ÿ“Œ Duration ``` -0.00047238206025213003 +0.0002661029575392604 ``` @@ -2469,7 +2469,7 @@ passed โŒ #14 - **Status:** โŒ `failed` -- **Duration:** `0.000718` s +- **Duration:** `0.000499` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -2478,7 +2478,7 @@ passed ๐Ÿ“Œ Duration ``` -0.000285441055893898 +0.0001842840574681759 ``` @@ -2497,7 +2497,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0007176470244303346 +0.0004994400078430772 ``` @@ -2551,7 +2551,7 @@ tests/test_math_utils.py:29: AssertionError ๐Ÿ“Œ Duration ``` -0.00031465000938624144 +0.0002526820171624422 ``` @@ -2574,7 +2574,7 @@ passed โŒ #17 - **Status:** โŒ `failed` -- **Duration:** `0.000191` s +- **Duration:** `0.000213` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -2583,7 +2583,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00021296599879860878 +0.00020426593255251646 ``` @@ -2602,7 +2602,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001910940045490861 +0.0002131809014827013 ``` @@ -2654,7 +2654,7 @@ tests/test_math_utils.py:43: RuntimeError ๐Ÿ“Œ Duration ``` -0.0002765059471130371 +0.0002603930188342929 ``` @@ -2677,7 +2677,7 @@ passed โŒ #25 - **Status:** โŒ `failed` -- **Duration:** `0.000181` s +- **Duration:** `0.000178` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -2686,7 +2686,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018068007193505764 +0.00018852099310606718 ``` @@ -2705,7 +2705,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001811860129237175 +0.00017814897000789642 ``` @@ -2757,7 +2757,7 @@ tests/test_math_utils.py:84: Exception ๐Ÿ“Œ Duration ``` -0.0003031460801139474 +0.00025721604470163584 ``` @@ -2780,7 +2780,7 @@ passed โŒ #27 - **Status:** โŒ `failed` -- **Duration:** `0.000193` s +- **Duration:** `0.000204` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -2789,7 +2789,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018139404710382223 +0.00018611201085150242 ``` @@ -2808,7 +2808,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019266200251877308 +0.0002041640691459179 ``` @@ -2884,7 +2884,7 @@ tests/test_math_utils.py:93: StopIteration The above exception was the direct cause of the following exception: cls = -func = . at 0x7f0d068af8b0> +func = . at 0x7fa008e348b0> when = 'call' reraise = (, ) @@ -2954,7 +2954,7 @@ E RuntimeError: generator raised StopIteration ๐Ÿ“Œ Duration ``` -0.00046096998266875744 +0.0004365659551694989 ``` @@ -2977,7 +2977,7 @@ passed โŒ #28 - **Status:** โŒ `failed` -- **Duration:** `0.000272` s +- **Duration:** `0.000205` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -2986,7 +2986,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002751849824562669 +0.0002782949013635516 ``` @@ -3005,7 +3005,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00027224409859627485 +0.00020473403856158257 ``` @@ -3057,7 +3057,7 @@ tests/test_math_utils.py:97: GeneratorExit ๐Ÿ“Œ Duration ``` -0.00033517798874527216 +0.00034391903318464756 ``` @@ -3080,7 +3080,7 @@ passed โŒ #29 - **Status:** โŒ `failed` -- **Duration:** `0.000213` s +- **Duration:** `0.000223` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -3089,7 +3089,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0004863030044361949 +0.0004923529922962189 ``` @@ -3108,7 +3108,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00021325796842575073 +0.00022294907830655575 ``` @@ -3144,7 +3144,7 @@ message: RecursionError ๐Ÿ“Œ Longrepr ``` -monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0d04233340> +monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fa008c3efd0> def test_recursion_limit(monkeypatch): # Lower recursion limit to force RecursionError on deep recursion @@ -3163,7 +3163,7 @@ tests/test_math_utils.py:102: RecursionError ๐Ÿ“Œ Duration ``` -0.0009695939952507615 +0.0009727430297061801 ``` @@ -3186,7 +3186,7 @@ passed โŒ #32 - **Status:** โŒ `failed` -- **Duration:** `0.000203` s +- **Duration:** `0.000202` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -3195,7 +3195,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0003716290229931474 +0.0003951509715989232 ``` @@ -3214,7 +3214,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00020284007769078016 +0.00020157394465059042 ``` @@ -3250,7 +3250,7 @@ message: AttributeError ๐Ÿ“Œ Longrepr ``` -monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0d040528b0> +monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fa008a4efa0> def test_broken_function(monkeypatch): # Simulate broken function raising TypeError @@ -3270,7 +3270,7 @@ tests/test_math_utils.py:126: AttributeError ๐Ÿ“Œ Duration ``` -0.0008268319070339203 +0.0008427649736404419 ``` @@ -3298,7 +3298,7 @@ passed โŒ #39 - **Status:** โŒ `failed` -- **Duration:** `0.000196` s +- **Duration:** `0.000192` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -3307,7 +3307,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001679059350863099 +0.00018750003073364496 ``` @@ -3326,7 +3326,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019646796863526106 +0.00019180600065737963 ``` @@ -3379,7 +3379,7 @@ tests/test_string_utils.py:28: Failed ๐Ÿ“Œ Duration ``` -0.00028199399821460247 +0.0002503100549802184 ``` @@ -3412,7 +3412,7 @@ passed โŒ #16 - **Status:** โŒ `xfailed` -- **Duration:** `0.000357` s +- **Duration:** `0.000320` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -3421,7 +3421,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00019682594574987888 +0.00020126404706388712 ``` @@ -3440,7 +3440,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0003573059802874923 +0.00031950604170560837 ``` @@ -3495,7 +3495,7 @@ tests/test_math_utils.py:39: AssertionError ๐Ÿ“Œ Duration ``` -0.00033111998345702887 +0.00027675600722432137 ``` @@ -3523,7 +3523,7 @@ passed โŒ #43 - **Status:** โŒ `xfailed` -- **Duration:** `0.000720` s +- **Duration:** `0.000677` s - **Severity:** `normal` ### ๐Ÿ”ง Setup Phase @@ -3532,7 +3532,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018593203276395798 +0.0001944289542734623 ``` @@ -3551,7 +3551,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0007196059450507164 +0.0006771690677851439 ``` @@ -3612,7 +3612,7 @@ tests/test_string_utils.py:50: AssertionError ๐Ÿ“Œ Duration ``` -0.0002858389634639025 +0.000264693982899189 ``` diff --git a/ci-reports/markdown/pytest-report.json b/ci-reports/markdown/pytest-report.json index f31e0a108..93bdd8ed1 100644 --- a/ci-reports/markdown/pytest-report.json +++ b/ci-reports/markdown/pytest-report.json @@ -1 +1 @@ -{"created": 1752505316.3968604, "duration": 0.5185561180114746, "exitcode": 2, "root": "/workspace/tligui_y/slic", "environment": {}, "summary": {"passed": 32, "failed": 10, "xfailed": 2, "total": 44, "collected": 44}, "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": 98}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "type": "Function", "lineno": 108}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "type": "Function", "lineno": 113}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "type": "Function", "lineno": 121}, {"nodeid": "tests/test_math_utils.py::test_import_error_patch", "type": "Function", "lineno": 129}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "type": "Function", "lineno": 140}]}, {"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/test_string_utils.py::test_keyboard_interrupt_direct", "type": "Function", "lineno": 51}]}, {"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.004562731948681176, "outcome": "passed"}, "call": {"duration": 0.0007340880110859871, "outcome": "passed"}, "teardown": {"duration": 0.0013196360087022185, "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.0008059421088546515, "outcome": "passed"}, "call": {"duration": 0.0003640101058408618, "outcome": "passed"}, "teardown": {"duration": 0.0007294530514627695, "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.00019526307005435228, "outcome": "passed"}, "call": {"duration": 0.00038621295243501663, "outcome": "passed"}, "teardown": {"duration": 0.00022859103046357632, "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.00018114503473043442, "outcome": "passed"}, "call": {"duration": 0.00020871509332209826, "outcome": "passed"}, "teardown": {"duration": 0.0002084749285131693, "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.00041688792407512665, "outcome": "passed"}, "call": {"duration": 0.0002599110594019294, "outcome": "passed"}, "teardown": {"duration": 0.000694810994900763, "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.00035414600279182196, "outcome": "passed"}, "call": {"duration": 0.009008038090541959, "outcome": "passed"}, "teardown": {"duration": 0.0010956129990518093, "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.0002472109626978636, "outcome": "passed"}, "call": {"duration": 0.00022015103604644537, "outcome": "passed"}, "teardown": {"duration": 0.00023233296815305948, "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.00043045799247920513, "outcome": "passed"}, "call": {"duration": 0.00022502103820443153, "outcome": "passed"}, "teardown": {"duration": 0.0012795600341632962, "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.0008311989950016141, "outcome": "passed"}, "call": {"duration": 0.0010962520027533174, "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.0010756140109151602, "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.0002587450435385108, "outcome": "passed"}, "call": {"duration": 0.00025621894747018814, "outcome": "passed"}, "teardown": {"duration": 0.00023103097919374704, "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.0002190619707107544, "outcome": "passed"}, "call": {"duration": 0.00019641895778477192, "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.00047238206025213003, "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.00038777198642492294, "outcome": "passed"}, "call": {"duration": 0.00042227504309266806, "outcome": "passed"}, "teardown": {"duration": 0.0004565460840240121, "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.00035907700657844543, "outcome": "passed"}, "call": {"duration": 0.0003296950599178672, "outcome": "passed"}, "teardown": {"duration": 0.00037616409827023745, "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.000285441055893898, "outcome": "passed"}, "call": {"duration": 0.0007176470244303346, "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.00031465000938624144, "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.00022742804139852524, "outcome": "passed"}, "call": {"duration": 0.00021972507238388062, "outcome": "passed"}, "teardown": {"duration": 0.00022528006229549646, "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.00019682594574987888, "outcome": "passed"}, "call": {"duration": 0.0003573059802874923, "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.00033111998345702887, "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.00021296599879860878, "outcome": "passed"}, "call": {"duration": 0.0001910940045490861, "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.0002765059471130371, "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.00019985006656497717, "outcome": "passed"}, "call": {"duration": 0.00021901295986026525, "outcome": "passed"}, "teardown": {"duration": 0.00023016100749373436, "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.00019142008386552334, "outcome": "passed"}, "call": {"duration": 0.00018502201419323683, "outcome": "passed"}, "teardown": {"duration": 0.00021833297796547413, "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.00018680794164538383, "outcome": "passed"}, "call": {"duration": 0.0009818379767239094, "outcome": "passed"}, "teardown": {"duration": 0.00021722004748880863, "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.00017529295291751623, "outcome": "passed"}, "call": {"duration": 0.0001779539743438363, "outcome": "passed"}, "teardown": {"duration": 0.00022621103562414646, "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.00020470703020691872, "outcome": "passed"}, "call": {"duration": 0.00024001009296625853, "outcome": "passed"}, "teardown": {"duration": 0.0002273881109431386, "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.00017526396550238132, "outcome": "passed"}, "call": {"duration": 0.0002551979850977659, "outcome": "passed"}, "teardown": {"duration": 0.00023183505982160568, "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.0001771050738170743, "outcome": "passed"}, "call": {"duration": 0.00019596703350543976, "outcome": "passed"}, "teardown": {"duration": 0.00022342801094055176, "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.00018068007193505764, "outcome": "passed"}, "call": {"duration": 0.0001811860129237175, "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.0003031460801139474, "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.0002143949968740344, "outcome": "passed"}, "call": {"duration": 0.00020109291654080153, "outcome": "passed"}, "teardown": {"duration": 0.00021340989042073488, "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.00018139404710382223, "outcome": "passed"}, "call": {"duration": 0.00019266200251877308, "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 0x7f0d068af8b0>\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.00046096998266875744, "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.0002751849824562669, "outcome": "passed"}, "call": {"duration": 0.00027224409859627485, "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.00033517798874527216, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_recursion_limit", "lineno": 98, "outcome": "failed", "keywords": ["test_recursion_limit", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0004863030044361949, "outcome": "passed"}, "call": {"duration": 0.00021325796842575073, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 102, "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": 102, "message": "RecursionError"}], "longrepr": "monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0d04233340>\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:102: RecursionError"}, "teardown": {"duration": 0.0009695939952507615, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "lineno": 108, "outcome": "passed", "keywords": ["test_malformed_code", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00021246797405183315, "outcome": "passed"}, "call": {"duration": 0.00022198003716766834, "outcome": "passed"}, "teardown": {"duration": 0.00023690005764365196, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "lineno": 113, "outcome": "passed", "keywords": ["test_sys_exit", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0004253590013831854, "outcome": "passed"}, "call": {"duration": 0.00020751799456775188, "outcome": "passed"}, "teardown": {"duration": 0.0007330860244110227, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "lineno": 121, "outcome": "failed", "keywords": ["test_broken_function", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0003716290229931474, "outcome": "passed"}, "call": {"duration": 0.00020284007769078016, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 126, "message": "AttributeError: 'tests.test_math_utils' has no attribute 'test_broken_function'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 126, "message": "AttributeError"}], "longrepr": "monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0d040528b0>\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:126: AttributeError"}, "teardown": {"duration": 0.0008268319070339203, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_import_error_patch", "lineno": 129, "outcome": "passed", "keywords": ["test_import_error_patch", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00037844397593289614, "outcome": "passed"}, "call": {"duration": 0.00024243502411991358, "outcome": "passed"}, "teardown": {"duration": 0.0006704980041831732, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "lineno": 140, "outcome": "passed", "keywords": ["test_module_not_found_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018730491865426302, "outcome": "passed"}, "call": {"duration": 0.0005077519454061985, "outcome": "passed"}, "teardown": {"duration": 0.0002091370988637209, "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.00019157398492097855, "outcome": "passed"}, "call": {"duration": 0.00016799499280750751, "outcome": "passed"}, "teardown": {"duration": 0.0001992810284718871, "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.00019321299623697996, "outcome": "passed"}, "call": {"duration": 0.0001929049612954259, "outcome": "passed"}, "teardown": {"duration": 0.00019699707627296448, "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.0001814250135794282, "outcome": "passed"}, "call": {"duration": 0.0001601940020918846, "outcome": "passed"}, "teardown": {"duration": 0.00019928696565330029, "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.00017990299966186285, "outcome": "passed"}, "call": {"duration": 0.00017951102927327156, "outcome": "passed"}, "teardown": {"duration": 0.00019493105355650187, "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.0001679059350863099, "outcome": "passed"}, "call": {"duration": 0.00019646796863526106, "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.00028199399821460247, "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.00019003800116479397, "outcome": "passed"}, "call": {"duration": 0.00020148896146565676, "outcome": "passed"}, "teardown": {"duration": 0.00020431901793926954, "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.0001875460147857666, "outcome": "passed"}, "call": {"duration": 0.00018628104589879513, "outcome": "passed"}, "teardown": {"duration": 0.00020486698485910892, "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.00018295994959771633, "outcome": "passed"}, "call": {"duration": 0.00017491099424660206, "outcome": "passed"}, "teardown": {"duration": 0.00020263297483325005, "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.00018593203276395798, "outcome": "passed"}, "call": {"duration": 0.0007196059450507164, "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.0002858389634639025, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_keyboard_interrupt_direct", "lineno": 51, "outcome": "passed", "keywords": ["test_keyboard_interrupt_direct", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019959802739322186, "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": 1752505657.3216014, "duration": 0.5361149311065674, "exitcode": 2, "root": "/workspace/tligui_y/slic", "environment": {}, "summary": {"passed": 32, "failed": 10, "xfailed": 2, "total": 44, "collected": 44}, "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": 98}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "type": "Function", "lineno": 108}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "type": "Function", "lineno": 113}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "type": "Function", "lineno": 121}, {"nodeid": "tests/test_math_utils.py::test_import_error_patch", "type": "Function", "lineno": 129}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "type": "Function", "lineno": 140}]}, {"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/test_string_utils.py::test_keyboard_interrupt_direct", "type": "Function", "lineno": 51}]}, {"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.004319166066125035, "outcome": "passed"}, "call": {"duration": 0.0006764919962733984, "outcome": "passed"}, "teardown": {"duration": 0.0013043599901720881, "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.000763376010581851, "outcome": "passed"}, "call": {"duration": 0.0003638649359345436, "outcome": "passed"}, "teardown": {"duration": 0.0007649631006643176, "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.00019885296933352947, "outcome": "passed"}, "call": {"duration": 0.0003894190303981304, "outcome": "passed"}, "teardown": {"duration": 0.00023031095042824745, "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.0001942949602380395, "outcome": "passed"}, "call": {"duration": 0.00021292094606906176, "outcome": "passed"}, "teardown": {"duration": 0.0002147359773516655, "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.00038975197821855545, "outcome": "passed"}, "call": {"duration": 0.00022796099074184895, "outcome": "passed"}, "teardown": {"duration": 0.0007063760422170162, "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.00038235296960920095, "outcome": "passed"}, "call": {"duration": 0.008758742013014853, "outcome": "passed"}, "teardown": {"duration": 0.0009671000298112631, "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.00022764294408261776, "outcome": "passed"}, "call": {"duration": 0.0002076339442282915, "outcome": "passed"}, "teardown": {"duration": 0.0002458119997754693, "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.00043332111090421677, "outcome": "passed"}, "call": {"duration": 0.0002204329939559102, "outcome": "passed"}, "teardown": {"duration": 0.0008052689954638481, "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.0008173550013452768, "outcome": "passed"}, "call": {"duration": 0.005901793949306011, "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.0010716558899730444, "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.0002452210756018758, "outcome": "passed"}, "call": {"duration": 0.0002358719939365983, "outcome": "passed"}, "teardown": {"duration": 0.0002314849989488721, "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.0002045509172603488, "outcome": "passed"}, "call": {"duration": 0.00018669897690415382, "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.0002661029575392604, "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.00019396701827645302, "outcome": "passed"}, "call": {"duration": 0.00020638201385736465, "outcome": "passed"}, "teardown": {"duration": 0.00021761097013950348, "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.00018960703164339066, "outcome": "passed"}, "call": {"duration": 0.00016143906395882368, "outcome": "passed"}, "teardown": {"duration": 0.00018853903748095036, "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.0001842840574681759, "outcome": "passed"}, "call": {"duration": 0.0004994400078430772, "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.0002526820171624422, "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.0001958259381353855, "outcome": "passed"}, "call": {"duration": 0.0002120930003002286, "outcome": "passed"}, "teardown": {"duration": 0.00020524300634860992, "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.00020126404706388712, "outcome": "passed"}, "call": {"duration": 0.00031950604170560837, "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.00027675600722432137, "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.00020426593255251646, "outcome": "passed"}, "call": {"duration": 0.0002131809014827013, "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.0002603930188342929, "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.00019159901421517134, "outcome": "passed"}, "call": {"duration": 0.0002216440625488758, "outcome": "passed"}, "teardown": {"duration": 0.00020904408302158117, "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.00018239603377878666, "outcome": "passed"}, "call": {"duration": 0.0001796680735424161, "outcome": "passed"}, "teardown": {"duration": 0.00021258892957121134, "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.00017800298519432545, "outcome": "passed"}, "call": {"duration": 0.0008981979917734861, "outcome": "passed"}, "teardown": {"duration": 0.00020574999507516623, "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.00019188295118510723, "outcome": "passed"}, "call": {"duration": 0.00017362507060170174, "outcome": "passed"}, "teardown": {"duration": 0.00019297702237963676, "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.00016533094458281994, "outcome": "passed"}, "call": {"duration": 0.00020088895689696074, "outcome": "passed"}, "teardown": {"duration": 0.0001975370105355978, "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.00018526904750615358, "outcome": "passed"}, "call": {"duration": 0.0001731810625642538, "outcome": "passed"}, "teardown": {"duration": 0.00019710010383278131, "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.00017143203876912594, "outcome": "passed"}, "call": {"duration": 0.00017032597679644823, "outcome": "passed"}, "teardown": {"duration": 0.00018972600810229778, "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.00018852099310606718, "outcome": "passed"}, "call": {"duration": 0.00017814897000789642, "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.00025721604470163584, "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.0001893111038953066, "outcome": "passed"}, "call": {"duration": 0.00018910004291683435, "outcome": "passed"}, "teardown": {"duration": 0.00019367202185094357, "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.00018611201085150242, "outcome": "passed"}, "call": {"duration": 0.0002041640691459179, "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 0x7fa008e348b0>\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.0004365659551694989, "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.0002782949013635516, "outcome": "passed"}, "call": {"duration": 0.00020473403856158257, "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.00034391903318464756, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_recursion_limit", "lineno": 98, "outcome": "failed", "keywords": ["test_recursion_limit", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0004923529922962189, "outcome": "passed"}, "call": {"duration": 0.00022294907830655575, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 102, "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": 102, "message": "RecursionError"}], "longrepr": "monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fa008c3efd0>\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:102: RecursionError"}, "teardown": {"duration": 0.0009727430297061801, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "lineno": 108, "outcome": "passed", "keywords": ["test_malformed_code", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00021684798412024975, "outcome": "passed"}, "call": {"duration": 0.0002587799681350589, "outcome": "passed"}, "teardown": {"duration": 0.0002245329087600112, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "lineno": 113, "outcome": "passed", "keywords": ["test_sys_exit", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00041965197306126356, "outcome": "passed"}, "call": {"duration": 0.00022927799727767706, "outcome": "passed"}, "teardown": {"duration": 0.0007050889544188976, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "lineno": 121, "outcome": "failed", "keywords": ["test_broken_function", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0003951509715989232, "outcome": "passed"}, "call": {"duration": 0.00020157394465059042, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 126, "message": "AttributeError: 'tests.test_math_utils' has no attribute 'test_broken_function'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 126, "message": "AttributeError"}], "longrepr": "monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fa008a4efa0>\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:126: AttributeError"}, "teardown": {"duration": 0.0008427649736404419, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_import_error_patch", "lineno": 129, "outcome": "passed", "keywords": ["test_import_error_patch", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0004198080860078335, "outcome": "passed"}, "call": {"duration": 0.00024148798547685146, "outcome": "passed"}, "teardown": {"duration": 0.0006796489469707012, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "lineno": 140, "outcome": "passed", "keywords": ["test_module_not_found_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018812797497957945, "outcome": "passed"}, "call": {"duration": 0.0004820440663024783, "outcome": "passed"}, "teardown": {"duration": 0.00020934396889060736, "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.0002093031071126461, "outcome": "passed"}, "call": {"duration": 0.00017106602899730206, "outcome": "passed"}, "teardown": {"duration": 0.00019683502614498138, "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.0001815460855141282, "outcome": "passed"}, "call": {"duration": 0.00018166203517466784, "outcome": "passed"}, "teardown": {"duration": 0.0001975720515474677, "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.00018906500190496445, "outcome": "passed"}, "call": {"duration": 0.0001571140019223094, "outcome": "passed"}, "teardown": {"duration": 0.00019202707335352898, "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.00016784202307462692, "outcome": "passed"}, "call": {"duration": 0.00016418390441685915, "outcome": "passed"}, "teardown": {"duration": 0.000198079040274024, "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.00018750003073364496, "outcome": "passed"}, "call": {"duration": 0.00019180600065737963, "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.0002503100549802184, "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.00018763297703117132, "outcome": "passed"}, "call": {"duration": 0.00019135407637804747, "outcome": "passed"}, "teardown": {"duration": 0.0003013749374076724, "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.00019287096802145243, "outcome": "passed"}, "call": {"duration": 0.0001845840597525239, "outcome": "passed"}, "teardown": {"duration": 0.0001925359247252345, "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.0001850150292739272, "outcome": "passed"}, "call": {"duration": 0.00018360302783548832, "outcome": "passed"}, "teardown": {"duration": 0.00020818598568439484, "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.0001944289542734623, "outcome": "passed"}, "call": {"duration": 0.0006771690677851439, "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.000264693982899189, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_keyboard_interrupt_direct", "lineno": 51, "outcome": "passed", "keywords": ["test_keyboard_interrupt_direct", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019388203509151936, "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