From 5e72bdbd403759a5b023fc25c85655d968fd3a48 Mon Sep 17 00:00:00 2001 From: ci-bot Date: Wed, 16 Jul 2025 11:28:28 +0000 Subject: [PATCH] CI: update test report and coverage files --- ci-reports/markdown/TEST-REPORT.md | 320 +-- ci-reports/markdown/json-tree-view.html | 2308 ++++++++++++++++++ ci-reports/markdown/json-tree-view.txt | 2982 +++++++++++------------ ci-reports/markdown/pytest-report.json | 2 +- ci-reports/markdown/raw-test-output.log | 14 +- 5 files changed, 3963 insertions(+), 1663 deletions(-) create mode 100644 ci-reports/markdown/json-tree-view.html diff --git a/ci-reports/markdown/TEST-REPORT.md b/ci-reports/markdown/TEST-REPORT.md index 6bfbe4a5..928b0085 100644 --- a/ci-reports/markdown/TEST-REPORT.md +++ b/ci-reports/markdown/TEST-REPORT.md @@ -58,7 +58,7 @@ ERROR tests/test_collector_error.py ============================= test session starts ============================== platform linux -- Python 3.8.20, pytest-8.3.4, pluggy-1.5.0 rootdir: /workspace/tligui_y/slic -plugins: allure-pytest-2.13.5, cov-5.0.0, metadata-3.1.1, html-4.1.1, json-report-1.5.0, md-report-0.6.2 +plugins: cov-5.0.0, html-4.1.1, metadata-3.1.1, allure-pytest-2.13.5, md-report-0.6.2, json-report-1.5.0 collected 49 items / 2 errors tests/test_io_utils.py ..FFFFFF.F @@ -133,7 +133,7 @@ E FileNotFoundError: [Errno 2] No such file or directory: 'nonexistent.fil functions/io_utils.py:2: FileNotFoundError ____________________________ test_permission_error _____________________________ -monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f8c84fee550> +monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0db85d3460> def test_permission_error(monkeypatch): # Patch open to raise PermissionError simulating access denial @@ -157,7 +157,7 @@ E PermissionError: Permission denied tests/test_io_utils.py:34: PermissionError _____________________________ test_mock_open_error _____________________________ -monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f8c854968b0> +monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0db7c0b8e0> def test_mock_open_error(monkeypatch): # Mock open() to raise IOError simulating read error @@ -174,7 +174,7 @@ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ return self._execute_mock_call(*args, **kwargs) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = +self = args = ('file.txt', 'r'), kwargs = {}, effect = OSError('Mocked IOError') def _execute_mock_call(self, /, *args, **kwargs): @@ -200,7 +200,7 @@ E ValueError: I/O operation on closed file tests/test_io_utils.py:50: ValueError ________________________________ test_os_error _________________________________ -monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f8c85152490> +monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0db7e6adf0> def test_os_error(monkeypatch): # Patch os.remove to raise OSError simulating filesystem error @@ -368,7 +368,7 @@ tests/test_math_utils.py:106: StopIteration The above exception was the direct cause of the following exception: cls = -func = . at 0x7f8c8531a9d0> +func = . at 0x7f0db841e4c0> when = 'call' reraise = (, ) @@ -497,7 +497,7 @@ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = 'non_existent_module_xyz' -import_ = +import_ = > ??? E ModuleNotFoundError: No module named 'non_existent_module_xyz' @@ -597,10 +597,10 @@ ERROR tests/test_collector_error.py --- # ๐Ÿงช Test Report -*Generated on 2025-07-16 11:23:45* +*Generated on 2025-07-16 11:28:27* ## ๐Ÿงพ General Info -- **duration**: 0.7612209320068359 +- **duration**: 0.75913405418396 - **root**: /workspace/tligui_y/slic - **environment**: @@ -636,7 +636,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -0.0034769499907270074 +0.003519034944474697 ``` @@ -659,7 +659,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00047294399701058865 +0.0004578919615596533 ``` @@ -682,7 +682,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002514449879527092 +0.00027404294814914465 ``` @@ -721,7 +721,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00047574902419000864 +0.0004969410365447402 ``` @@ -744,7 +744,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0003188850823789835 +0.0002863170811906457 ``` @@ -767,7 +767,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001477039186283946 +0.00014169898349791765 ``` @@ -806,7 +806,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0006195750320330262 +0.0007261839928105474 ``` @@ -829,7 +829,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0009607849642634392 +0.0009029629873111844 ``` @@ -852,7 +852,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001365200150758028 +0.00015958398580551147 ``` @@ -900,7 +900,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0003228920977562666 +0.0003262300742790103 ``` @@ -923,7 +923,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00014968507457524538 +0.00014390796422958374 ``` @@ -946,7 +946,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00014042691327631474 +0.00014063192065805197 ``` @@ -978,7 +978,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00025064009241759777 +0.0002630489179864526 ``` @@ -1001,7 +1001,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00012975302524864674 +0.00013359496369957924 ``` @@ -1024,7 +1024,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00013258797116577625 +0.00013252405915409327 ``` @@ -1056,7 +1056,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00025347701739519835 +0.0002541639842092991 ``` @@ -1079,7 +1079,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00013829907402396202 +0.00012574996799230576 ``` @@ -1102,7 +1102,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00013452500570565462 +0.00013214396312832832 ``` @@ -1134,7 +1134,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00024386809673160315 +0.00025280797854065895 ``` @@ -1157,7 +1157,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00012902903836220503 +0.00012576999142766 ``` @@ -1180,7 +1180,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00013447098899632692 +0.0001280080759897828 ``` @@ -1212,7 +1212,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00024119694717228413 +0.0002490709302946925 ``` @@ -1235,7 +1235,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00012350990436971188 +0.00012148392852395773 ``` @@ -1258,7 +1258,7 @@ passed ๐Ÿ“Œ Duration ``` -0.000129251042380929 +0.0001270559150725603 ``` @@ -1298,7 +1298,7 @@ passed ๐Ÿ“Œ Duration ``` -0.000235849991440773 +0.00025460205506533384 ``` @@ -1321,7 +1321,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00013311195652931929 +0.00012710702139884233 ``` @@ -1344,7 +1344,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00013245001900941133 +0.00013038096949458122 ``` @@ -1376,7 +1376,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002402580576017499 +0.00024689396377652884 ``` @@ -1399,7 +1399,7 @@ passed ๐Ÿ“Œ Duration ``` -0.000123149948194623 +0.0001224930165335536 ``` @@ -1422,7 +1422,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00012678105849772692 +0.0001422489294782281 ``` @@ -1454,7 +1454,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002334710443392396 +0.00025648402515798807 ``` @@ -1477,7 +1477,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00012309092562645674 +0.00012656894978135824 ``` @@ -1500,7 +1500,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00013137306086719036 +0.00012920796871185303 ``` @@ -1547,7 +1547,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00014300004113465548 +0.00016108795534819365 ``` @@ -1570,7 +1570,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00016698800027370453 +0.0001583929406479001 ``` @@ -1593,7 +1593,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00010394398123025894 +0.00010466203093528748 ``` @@ -1632,7 +1632,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001332879764959216 +0.00015661492943763733 ``` @@ -1655,7 +1655,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00014428701251745224 +0.00016095698811113834 ``` @@ -1678,7 +1678,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00010650698095560074 +0.00010271498467773199 ``` @@ -1717,7 +1717,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00010489101987332106 +0.00010676996316760778 ``` @@ -1740,7 +1740,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001473430311307311 +0.0001734130783006549 ``` @@ -1763,7 +1763,7 @@ passed ๐Ÿ“Œ Duration ``` -9.490700904279947e-05 +0.00011708796955645084 ``` @@ -1802,7 +1802,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00011565408203750849 +0.00011433695908635855 ``` @@ -1825,7 +1825,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001411329722031951 +0.00013735308311879635 ``` @@ -1848,7 +1848,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00010227004531770945 +0.00011824897956103086 ``` @@ -1887,7 +1887,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00011789100244641304 +0.0001188239548355341 ``` @@ -1942,7 +1942,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00011299096513539553 +0.00011287699453532696 ``` @@ -1965,7 +1965,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018089194782078266 +0.00015965593047440052 ``` @@ -2036,7 +2036,7 @@ functions/io_utils.py:10: OSError ๐Ÿ“Œ Duration ``` -0.0001613039057701826 +0.00014494697097688913 ``` @@ -2075,7 +2075,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00012029102072119713 +0.00012540107127279043 ``` @@ -2098,7 +2098,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001859969925135374 +0.00018100510351359844 ``` @@ -2171,7 +2171,7 @@ functions/io_utils.py:2: FileNotFoundError ๐Ÿ“Œ Duration ``` -0.00015317206270992756 +0.000137386959977448 ``` @@ -2210,7 +2210,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00021963007748126984 +0.0002257989253848791 ``` @@ -2233,7 +2233,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001808319939300418 +0.00018001499120146036 ``` @@ -2283,7 +2283,7 @@ message: PermissionError ๐Ÿ“Œ Longrepr ``` -monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f8c84fee550> +monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0db85d3460> def test_permission_error(monkeypatch): # Patch open to raise PermissionError simulating access denial @@ -2317,7 +2317,7 @@ tests/test_io_utils.py:34: PermissionError ๐Ÿ“Œ Duration ``` -0.00017557304818183184 +0.00017847190611064434 ``` @@ -2356,7 +2356,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00020388001576066017 +0.0002220420865342021 ``` @@ -2379,7 +2379,7 @@ passed ๐Ÿ“Œ Duration ``` -0.003357263980433345 +0.003379918052814901 ``` @@ -2432,7 +2432,7 @@ message: OSError ๐Ÿ“Œ Longrepr ``` -monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f8c854968b0> +monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0db7c0b8e0> def test_mock_open_error(monkeypatch): # Mock open() to raise IOError simulating read error @@ -2449,7 +2449,7 @@ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ return self._execute_mock_call(*args, **kwargs) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = +self = args = ('file.txt', 'r'), kwargs = {}, effect = OSError('Mocked IOError') def _execute_mock_call(self, /, *args, **kwargs): @@ -2475,7 +2475,7 @@ E OSError: Mocked IOError ๐Ÿ“Œ Duration ``` -0.00030400208197534084 +0.0003183989319950342 ``` @@ -2514,7 +2514,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00014069897588342428 +0.00014771195128560066 ``` @@ -2537,7 +2537,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018593005370348692 +0.00021521199960261583 ``` @@ -2601,7 +2601,7 @@ tests/test_io_utils.py:50: ValueError ๐Ÿ“Œ Duration ``` -0.00018437393009662628 +0.00024127995129674673 ``` @@ -2640,7 +2640,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0002674639690667391 +0.000274940044619143 ``` @@ -2663,7 +2663,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018530595116317272 +0.00021898397244513035 ``` @@ -2710,7 +2710,7 @@ message: OSError ๐Ÿ“Œ Longrepr ``` -monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f8c85152490> +monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0db7e6adf0> def test_os_error(monkeypatch): # Patch os.remove to raise OSError simulating filesystem error @@ -2741,7 +2741,7 @@ tests/test_io_utils.py:55: OSError ๐Ÿ“Œ Duration ``` -0.00018026900943368673 +0.00021282397210597992 ``` @@ -2780,7 +2780,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00011534302029758692 +0.00013846997171640396 ``` @@ -2803,7 +2803,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001643829746171832 +0.00017680798191577196 ``` @@ -2865,7 +2865,7 @@ tests/test_io_utils.py:69: FileNotFoundError ๐Ÿ“Œ Duration ``` -0.00013826193753629923 +0.0001557719660922885 ``` @@ -2912,7 +2912,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00012894801329821348 +0.00012939400039613247 ``` @@ -2935,7 +2935,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00015521596651524305 +0.00017559307161718607 ``` @@ -2997,7 +2997,7 @@ tests/test_math_utils.py:16: NameError ๐Ÿ“Œ Duration ``` -0.00014869007281959057 +0.00013757101260125637 ``` @@ -3036,7 +3036,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00012153200805187225 +0.000119043979793787 ``` @@ -3059,7 +3059,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00015123409684747458 +0.0001510699512436986 ``` @@ -3121,7 +3121,7 @@ tests/test_math_utils.py:20: AttributeError ๐Ÿ“Œ Duration ``` -0.00013944297097623348 +0.00013786298222839832 ``` @@ -3160,7 +3160,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00012341595720499754 +0.0001011720160022378 ``` @@ -3183,7 +3183,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0004376369761303067 +0.0004662580322474241 ``` @@ -3247,7 +3247,7 @@ tests/test_math_utils.py:51: AssertionError ๐Ÿ“Œ Duration ``` -0.00013744202442467213 +0.00013867393136024475 ``` @@ -3286,7 +3286,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00011587492190301418 +0.0001165029825642705 ``` @@ -3309,7 +3309,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00016384304035454988 +0.00015640503261238337 ``` @@ -3382,7 +3382,7 @@ functions/math_utils.py:5: ZeroDivisionError ๐Ÿ“Œ Duration ``` -0.00014052505139261484 +0.0001372910337522626 ``` @@ -3421,7 +3421,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00011607096530497074 +0.0001181289553642273 ``` @@ -3444,7 +3444,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001454079756513238 +0.0001598019152879715 ``` @@ -3506,7 +3506,7 @@ tests/test_math_utils.py:64: RuntimeError ๐Ÿ“Œ Duration ``` -0.00013999699149280787 +0.00013109308201819658 ``` @@ -3545,7 +3545,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00012049800716340542 +0.0001173289492726326 ``` @@ -3568,7 +3568,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00015628698747605085 +0.00014812604058533907 ``` @@ -3630,7 +3630,7 @@ tests/test_math_utils.py:68: MemoryError ๐Ÿ“Œ Duration ``` -0.00014967401511967182 +0.00013674399815499783 ``` @@ -3669,7 +3669,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00011658994480967522 +0.00011517398525029421 ``` @@ -3692,7 +3692,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00015352503396570683 +0.00014715595170855522 ``` @@ -3754,7 +3754,7 @@ tests/test_math_utils.py:72: TimeoutError ๐Ÿ“Œ Duration ``` -0.00014371902216225863 +0.00013202405534684658 ``` @@ -3793,7 +3793,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00011457107029855251 +0.00012038892600685358 ``` @@ -3816,7 +3816,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0008337449980899692 +0.0007694610394537449 ``` @@ -3892,7 +3892,7 @@ E RecursionError: maximum recursion depth exceeded ๐Ÿ“Œ Duration ``` -0.00015925802290439606 +0.00013668497558683157 ``` @@ -3931,7 +3931,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001275750109925866 +0.00011509202886372805 ``` @@ -3954,7 +3954,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001523829996585846 +0.00015865499153733253 ``` @@ -4016,7 +4016,7 @@ tests/test_math_utils.py:82: FloatingPointError ๐Ÿ“Œ Duration ``` -0.00014810694847255945 +0.00013310008216649294 ``` @@ -4055,7 +4055,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00011980801355093718 +0.00011614803224802017 ``` @@ -4078,7 +4078,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00015667499974370003 +0.00015314901247620583 ``` @@ -4140,7 +4140,7 @@ tests/test_math_utils.py:86: OverflowError ๐Ÿ“Œ Duration ``` -0.0001383880153298378 +0.00013554503675550222 ``` @@ -4179,7 +4179,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00015356694348156452 +0.00011774105951189995 ``` @@ -4202,7 +4202,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001557020004838705 +0.00015810609329491854 ``` @@ -4264,7 +4264,7 @@ tests/test_math_utils.py:90: ValueError ๐Ÿ“Œ Duration ``` -0.00013684399891644716 +0.00013520405627787113 ``` @@ -4303,7 +4303,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00012820400297641754 +0.00012709293514490128 ``` @@ -4326,7 +4326,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00014959299005568027 +0.000151293003000319 ``` @@ -4388,7 +4388,7 @@ tests/test_math_utils.py:94: TypeError ๐Ÿ“Œ Duration ``` -0.00014765397645533085 +0.00014412403106689453 ``` @@ -4427,7 +4427,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00011809100396931171 +0.00011704093776643276 ``` @@ -4450,7 +4450,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00014853000175207853 +0.00015748105943202972 ``` @@ -4512,7 +4512,7 @@ tests/test_math_utils.py:98: Exception ๐Ÿ“Œ Duration ``` -0.00014820101205259562 +0.00013320997823029757 ``` @@ -4551,7 +4551,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00011913909111171961 +0.00011997099500149488 ``` @@ -4574,7 +4574,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00015300593804568052 +0.0001519309589639306 ``` @@ -4636,7 +4636,7 @@ tests/test_math_utils.py:102: CustomError ๐Ÿ“Œ Duration ``` -0.000140600954182446 +0.00013642897829413414 ``` @@ -4675,7 +4675,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00011588505003601313 +0.00011576898396015167 ``` @@ -4698,7 +4698,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00015935709234327078 +0.00015537790022790432 ``` @@ -4782,7 +4782,7 @@ tests/test_math_utils.py:106: StopIteration The above exception was the direct cause of the following exception: cls = -func = . at 0x7f8c8531a9d0> +func = . at 0x7f0db841e4c0> when = 'call' reraise = (, ) @@ -4854,7 +4854,7 @@ E RuntimeError: generator raised StopIteration ๐Ÿ“Œ Duration ``` -0.00026710901875048876 +0.0002677320735529065 ``` @@ -4893,7 +4893,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00014105497393757105 +0.0001417449675500393 ``` @@ -4916,7 +4916,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00018844602163881063 +0.00017248094081878662 ``` @@ -4978,7 +4978,7 @@ tests/test_math_utils.py:110: GeneratorExit ๐Ÿ“Œ Duration ``` -0.00018478697165846825 +0.00016654492355883121 ``` @@ -5017,7 +5017,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00013062707148492336 +0.00012392201460897923 ``` @@ -5040,7 +5040,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001664709998294711 +0.00017078802920877934 ``` @@ -5108,7 +5108,7 @@ tests/test_math_utils.py:114: SyntaxError ๐Ÿ“Œ Duration ``` -0.000140861957333982 +0.00015127402730286121 ``` @@ -5147,7 +5147,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00013600592501461506 +0.0001187219750136137 ``` @@ -5170,7 +5170,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00014923803973942995 +0.00015819701366126537 ``` @@ -5232,7 +5232,7 @@ tests/test_math_utils.py:118: SystemExit ๐Ÿ“Œ Duration ``` -0.00013922492507845163 +0.00013676297385245562 ``` @@ -5271,7 +5271,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001176310470327735 +0.00012654298916459084 ``` @@ -5294,7 +5294,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00015258602797985077 +0.0001669420162215829 ``` @@ -5369,7 +5369,7 @@ tests/test_math_utils.py:123: TypeError ๐Ÿ“Œ Duration ``` -0.00015550502575933933 +0.0001369150122627616 ``` @@ -5408,7 +5408,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00016691198106855154 +0.0001182629493996501 ``` @@ -5431,7 +5431,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00020212004892528057 +0.000159613904543221 ``` @@ -5492,7 +5492,7 @@ tests/test_math_utils.py:127: ImportError ๐Ÿ“Œ Duration ``` -0.00015186495147645473 +0.0001364400377497077 ``` @@ -5531,7 +5531,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00013491499703377485 +0.00011761998757719994 ``` @@ -5554,7 +5554,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0005101009737700224 +0.00047670502681285143 ``` @@ -5625,7 +5625,7 @@ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = 'non_existent_module_xyz' -import_ = +import_ = > ??? E ModuleNotFoundError: No module named 'non_existent_module_xyz' @@ -5643,7 +5643,7 @@ E ModuleNotFoundError: No module named 'non_existent_module_xyz' ๐Ÿ“Œ Duration ``` -0.00017512007616460323 +0.00018405495211482048 ``` @@ -5690,7 +5690,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0001072160666808486 +0.00011343008372932673 ``` @@ -5713,7 +5713,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00014499493408948183 +0.00014667189680039883 ``` @@ -5787,7 +5787,7 @@ functions/string_utils.py:3: TypeError ๐Ÿ“Œ Duration ``` -0.00014362495858222246 +0.00018305203411728144 ``` @@ -5826,7 +5826,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00011253403499722481 +0.00011107895988970995 ``` @@ -5849,7 +5849,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00015926803462207317 +0.00016814901027828455 ``` @@ -5911,7 +5911,7 @@ tests/test_string_utils.py:26: UnicodeDecodeError ๐Ÿ“Œ Duration ``` -0.00014921592082828283 +0.00014081597328186035 ``` @@ -5950,7 +5950,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00011629203800112009 +0.00011643394827842712 ``` @@ -5973,7 +5973,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00015977805014699697 +0.00015874800737947226 ``` @@ -6035,7 +6035,7 @@ tests/test_string_utils.py:30: UnicodeDecodeError ๐Ÿ“Œ Duration ``` -0.00013570301234722137 +0.00013445201329886913 ``` @@ -6090,7 +6090,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00013683398719877005 +0.00014673604164272547 ``` @@ -6113,7 +6113,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00026702694594860077 +0.00027240999042987823 ``` @@ -6178,7 +6178,7 @@ tests/test_math_utils.py:60: AssertionError ๐Ÿ“Œ Duration ``` -0.0001426310045644641 +0.0001355850836262107 ``` @@ -6225,7 +6225,7 @@ passed ๐Ÿ“Œ Duration ``` -0.00011509796604514122 +0.00012995698489248753 ``` @@ -6248,7 +6248,7 @@ passed ๐Ÿ“Œ Duration ``` -0.0006145689403638244 +0.0006160879274830222 ``` @@ -6319,7 +6319,7 @@ tests/test_string_utils.py:39: AssertionError ๐Ÿ“Œ Duration ``` -0.00013657810632139444 +0.00013392604887485504 ``` diff --git a/ci-reports/markdown/json-tree-view.html b/ci-reports/markdown/json-tree-view.html new file mode 100644 index 00000000..22382be5 --- /dev/null +++ b/ci-reports/markdown/json-tree-view.html @@ -0,0 +1,2308 @@ + + + + + + + +
๐Ÿ“ ci-reports/markdown/pytest-report.json
+โ”œโ”€โ”€ created: 1752665307.6458447
+โ”œโ”€โ”€ duration: 0.75913405418396
+โ”œโ”€โ”€ exitcode: 2
+โ”œโ”€โ”€ root: "/workspace/tligui_y/slic"
+โ”œโ”€โ”€ environment
+โ”œโ”€โ”€ summary
+โ”‚   โ”œโ”€โ”€ passed: 16
+โ”‚   โ”œโ”€โ”€ failed: 31
+โ”‚   โ”œโ”€โ”€ xfailed: 2
+โ”‚   โ”œโ”€โ”€ total: 49
+โ”‚   โ””โ”€โ”€ collected: 49
+โ”œโ”€โ”€ collectors
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: ""
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ result
+โ”‚   โ”‚       โ””โ”€โ”€ -
+โ”‚   โ”‚           โ”œโ”€โ”€ nodeid: "."
+โ”‚   โ”‚           โ””โ”€โ”€ type: "Dir"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "ci-reports/allure/data"
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ result
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "ci-reports/allure/export"
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ result
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "ci-reports/allure/history"
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ result
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "ci-reports/allure/plugin/behaviors"
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ result
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "ci-reports/allure/plugin/packages"
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ result
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "ci-reports/allure/plugin/screen-diff"
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ result
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "ci-reports/allure/plugin"
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ result
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "ci-reports/allure/plugin/behaviors"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ type: "Dir"
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "ci-reports/allure/plugin/packages"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ type: "Dir"
+โ”‚   โ”‚       โ””โ”€โ”€ -
+โ”‚   โ”‚           โ”œโ”€โ”€ nodeid: "ci-reports/allure/plugin/screen-diff"
+โ”‚   โ”‚           โ””โ”€โ”€ type: "Dir"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "ci-reports/allure/widgets"
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ result
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "ci-reports/allure"
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ result
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "ci-reports/allure/data"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ type: "Dir"
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "ci-reports/allure/export"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ type: "Dir"
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "ci-reports/allure/history"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ type: "Dir"
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "ci-reports/allure/plugin"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ type: "Dir"
+โ”‚   โ”‚       โ””โ”€โ”€ -
+โ”‚   โ”‚           โ”œโ”€โ”€ nodeid: "ci-reports/allure/widgets"
+โ”‚   โ”‚           โ””โ”€โ”€ type: "Dir"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ 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: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ result
+โ”‚   โ”‚   โ””โ”€โ”€ longrepr: 
+โ”‚   โ”‚       ".pixi/envs/default/lib/python3.8/site-packages/_pytest/python.py:49
+โ”‚   โ”‚       3: in importtestmodule
+โ”‚   โ”‚           mod = import_path(
+โ”‚   โ”‚       .pixi/envs/default/lib/python3.8/site-packages/_pytest/pathlib.py:58
+โ”‚   โ”‚       7: in import_path
+โ”‚   โ”‚           importlib.import_module(module_name)
+โ”‚   โ”‚       .pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in 
+โ”‚   โ”‚       import_module
+โ”‚   โ”‚           return _bootstrap._gcd_import(name, package, level)
+โ”‚   โ”‚       <frozen importlib._bootstrap>:1014: in _gcd_import
+โ”‚   โ”‚           ???
+โ”‚   โ”‚       <frozen importlib._bootstrap>:991: in _find_and_load
+โ”‚   โ”‚           ???
+โ”‚   โ”‚       <frozen importlib._bootstrap>:975: in _find_and_load_unlocked
+โ”‚   โ”‚           ???
+โ”‚   โ”‚       <frozen importlib._bootstrap>:671: in _load_unlocked
+โ”‚   โ”‚           ???
+โ”‚   โ”‚       .pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rew
+โ”‚   โ”‚       rite.py:175: in exec_module
+โ”‚   โ”‚           source_stat, co = _rewrite_test(fn, self.config)
+โ”‚   โ”‚       .pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rew
+โ”‚   โ”‚       rite.py:355: in _rewrite_test
+โ”‚   โ”‚           tree = ast.parse(source, filename=strfn)
+โ”‚   โ”‚       .pixi/envs/default/lib/python3.8/ast.py:47: in parse
+โ”‚   โ”‚           return compile(source, filename, mode, flags,
+โ”‚   โ”‚       E     File "/workspace/tligui_y/slic/tests/test_broken_fct.py", line
+โ”‚   โ”‚       8
+โ”‚   โ”‚       E       def test_valid_2():
+โ”‚   โ”‚       E       ^
+โ”‚   โ”‚       E   SyntaxError: invalid syntax"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_collector_error.py"
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ result
+โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "ImportError while importing test module 
+โ”‚   โ”‚       '/workspace/tligui_y/slic/tests/test_collector_error.py'.
+โ”‚   โ”‚       Hint: make sure your test modules/packages have valid Python names.
+โ”‚   โ”‚       Traceback:
+โ”‚   โ”‚       .pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in 
+โ”‚   โ”‚       import_module
+โ”‚   โ”‚           return _bootstrap._gcd_import(name, package, level)
+โ”‚   โ”‚       tests/test_collector_error.py:1: in <module>
+โ”‚   โ”‚           from no_existing_module.math_utils import *
+โ”‚   โ”‚       E   ModuleNotFoundError: No module named 'no_existing_module'"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ 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: 26
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_permission_error"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 30
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_mock_open_error"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 37
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: 
+โ”‚   โ”‚       โ”‚   โ”‚   "tests/test_io_utils.py::test_file_handle_closed_error"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 45
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_os_error"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 51
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_write_file_readonly"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 58
+โ”‚   โ”‚       โ””โ”€โ”€ -
+โ”‚   โ”‚           โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_file_not_found_error"
+โ”‚   โ”‚           โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚           โ””โ”€โ”€ lineno: 66
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ 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[2-2-4]"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 22
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: 
+โ”‚   โ”‚       โ”‚   โ”‚   "tests/test_math_utils.py::test_addition_pass[1-5-6]"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 22
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: 
+โ”‚   โ”‚       โ”‚   โ”‚   "tests/test_math_utils.py::test_addition_pass[3-4-7]"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 22
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: 
+โ”‚   โ”‚       โ”‚   โ”‚   "tests/test_math_utils.py::test_addition_pass[3-5-8]"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 22
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: 
+โ”‚   โ”‚       โ”‚   โ”‚   "tests/test_math_utils.py::test_addition_pass[3-6-9]"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 22
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_pass_id"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 36
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_pass_id"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 36
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_pass_id"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 36
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_fail"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 48
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_division_zero"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 52
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_multiply_xfail"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 56
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_runtime_error"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 61
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_memory_error"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 65
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_timeout_error"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 69
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_recursion_error"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 73
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: 
+โ”‚   โ”‚       โ”‚   โ”‚   "tests/test_math_utils.py::test_floating_point_error"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 79
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: 
+โ”‚   โ”‚       โ”‚   โ”‚   "tests/test_math_utils.py::test_floating_point_overflow"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 83
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_value_error"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 87
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: 
+โ”‚   โ”‚       โ”‚   โ”‚   "tests/test_math_utils.py::test_wrong_argument_error"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 91
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_unhandled_exception"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 95
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_custom_error"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 99
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: 
+โ”‚   โ”‚       โ”‚   โ”‚   "tests/test_math_utils.py::test_stop_iteration_direct"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 103
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: 
+โ”‚   โ”‚       โ”‚   โ”‚   "tests/test_math_utils.py::test_generator_exit_direct"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 107
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_malformed_code"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 111
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_sys_exit"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 115
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_broken_function"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 119
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_import_error"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 125
+โ”‚   โ”‚       โ””โ”€โ”€ -
+โ”‚   โ”‚           โ”œโ”€โ”€ nodeid: 
+โ”‚   โ”‚           โ”‚   "tests/test_math_utils.py::test_module_not_found_error"
+โ”‚   โ”‚           โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚           โ””โ”€โ”€ lineno: 128
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ 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: 15
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_string_utils.py::test_warning_emit"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 19
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: 
+โ”‚   โ”‚       โ”‚   โ”‚   "tests/test_string_utils.py::test_unicode_decode_error"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 23
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: 
+โ”‚   โ”‚       โ”‚   โ”‚   "tests/test_string_utils.py::test_unicode_decode_surrogatees
+โ”‚   โ”‚       โ”‚   โ”‚   cape"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 27
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_string_utils.py::test_import_warning"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 31
+โ”‚   โ”‚       โ”œโ”€โ”€ -
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ nodeid: 
+โ”‚   โ”‚       โ”‚   โ”‚   "tests/test_string_utils.py::test_xfail_uppercase_digits"
+โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ lineno: 35
+โ”‚   โ”‚       โ””โ”€โ”€ -
+โ”‚   โ”‚           โ”œโ”€โ”€ nodeid: 
+โ”‚   โ”‚           โ”‚   "tests/test_string_utils.py::test_keyboard_interrupt_direct"
+โ”‚   โ”‚           โ”œโ”€โ”€ type: "Function"
+โ”‚   โ”‚           โ””โ”€โ”€ lineno: 40
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ 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: "ci-reports"
+โ”‚           โ”‚   โ””โ”€โ”€ type: "Dir"
+โ”‚           โ”œโ”€โ”€ -
+โ”‚           โ”‚   โ”œโ”€โ”€ nodeid: "functions"
+โ”‚           โ”‚   โ””โ”€โ”€ type: "Package"
+โ”‚           โ””โ”€โ”€ -
+โ”‚               โ”œโ”€โ”€ nodeid: "tests"
+โ”‚               โ””โ”€โ”€ type: "Dir"
+โ”œโ”€โ”€ 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.003519034944474697
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0004578919615596533
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00027404294814914465
+โ”‚   โ”‚       โ””โ”€โ”€ 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.0004969410365447402
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0002863170811906457
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00014169898349791765
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_cause_io_error"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 22
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_cause_io_error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00011287699453532696
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00015965593047440052
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/functions/io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 10
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "OSError: Forced IO Error for testing"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "tests/test_io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 25
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: ""
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "functions/io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 10
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "OSError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_cause_io_error():
+โ”‚   โ”‚   โ”‚               # Raises manual IOError to simulate IO failure
+โ”‚   โ”‚   โ”‚       >       cause_io_error()
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_io_utils.py:25: 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚           def cause_io_error():
+โ”‚   โ”‚   โ”‚       >       raise IOError("Forced IO Error for testing")
+โ”‚   โ”‚   โ”‚       E       OSError: Forced IO Error for testing
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       functions/io_utils.py:10: OSError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00014494697097688913
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_file_not_found"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 26
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_file_not_found"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00012540107127279043
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00018100510351359844
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/functions/io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 2
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "FileNotFoundError: [Errno 2] No such file or 
+โ”‚   โ”‚   โ”‚   โ”‚       directory: 'nonexistent.file'"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "tests/test_io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 29
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: ""
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "functions/io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 2
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "FileNotFoundError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_file_not_found():
+โ”‚   โ”‚   โ”‚               # Reading non-existing file raises FileNotFoundError
+โ”‚   โ”‚   โ”‚       >       read_file("nonexistent.file")
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_io_utils.py:29: 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       path = 'nonexistent.file'
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚           def read_file(path):
+โ”‚   โ”‚   โ”‚       >       with open(path, "r", encoding="utf-8") as f:
+โ”‚   โ”‚   โ”‚       E       FileNotFoundError: [Errno 2] No such file or directory: 
+โ”‚   โ”‚   โ”‚       'nonexistent.file'
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       functions/io_utils.py:2: FileNotFoundError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.000137386959977448
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_permission_error"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 30
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_permission_error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0002257989253848791
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00018001499120146036
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 34
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "PermissionError: Permission denied"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "tests/test_io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 36
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: ""
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "functions/io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 2
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "in read_file"
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 34
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "PermissionError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "monkeypatch = <_pytest.monkeypatch.MonkeyPatch object
+โ”‚   โ”‚   โ”‚       at 0x7f0db85d3460>
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚           def test_permission_error(monkeypatch):
+โ”‚   โ”‚   โ”‚               # Patch open to raise PermissionError simulating access 
+โ”‚   โ”‚   โ”‚       denial
+โ”‚   โ”‚   โ”‚               def raise_perm_error(*args, **kwargs):
+โ”‚   โ”‚   โ”‚                   raise PermissionError("Permission denied")
+โ”‚   โ”‚   โ”‚               monkeypatch.setattr("builtins.open", raise_perm_error)
+โ”‚   โ”‚   โ”‚       >       read_file("anyfile.txt")
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_io_utils.py:36: 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       functions/io_utils.py:2: in read_file
+โ”‚   โ”‚   โ”‚           with open(path, "r", encoding="utf-8") as f:
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       args = ('anyfile.txt', 'r'), kwargs = {'encoding': 'utf-8'}
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚           def raise_perm_error(*args, **kwargs):
+โ”‚   โ”‚   โ”‚       >       raise PermissionError("Permission denied")
+โ”‚   โ”‚   โ”‚       E       PermissionError: Permission denied
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_io_utils.py:34: PermissionError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00017847190611064434
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_mock_open_error"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 37
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_mock_open_error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0002220420865342021
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.003379918052814901
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: 
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/u
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   nittest/mock.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 1140
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "OSError: Mocked IOError"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "tests/test_io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 43
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: ""
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: 
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   ".pixi/envs/default/lib/python3.8/unittest/mock.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 1081
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "in __call__"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: 
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   ".pixi/envs/default/lib/python3.8/unittest/mock.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 1085
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "in _mock_call"
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: 
+โ”‚   โ”‚   โ”‚   โ”‚       โ”‚   ".pixi/envs/default/lib/python3.8/unittest/mock.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 1140
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "OSError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "monkeypatch = <_pytest.monkeypatch.MonkeyPatch object
+โ”‚   โ”‚   โ”‚       at 0x7f0db7c0b8e0>
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚           def test_mock_open_error(monkeypatch):
+โ”‚   โ”‚   โ”‚               # Mock open() to raise IOError simulating read error
+โ”‚   โ”‚   โ”‚               mocked_open = mock.mock_open()
+โ”‚   โ”‚   โ”‚               mocked_open.side_effect = IOError("Mocked IOError")
+โ”‚   โ”‚   โ”‚               monkeypatch.setattr("builtins.open", mocked_open)
+โ”‚   โ”‚   โ”‚       >       with open("file.txt", "r") as f:
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_io_utils.py:43: 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       .pixi/envs/default/lib/python3.8/unittest/mock.py:1081: in 
+โ”‚   โ”‚   โ”‚       __call__
+โ”‚   โ”‚   โ”‚           return self._mock_call(*args, **kwargs)
+โ”‚   โ”‚   โ”‚       .pixi/envs/default/lib/python3.8/unittest/mock.py:1085: in 
+โ”‚   โ”‚   โ”‚       _mock_call
+โ”‚   โ”‚   โ”‚           return self._execute_mock_call(*args, **kwargs)
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       self = <MagicMock name='open' spec='builtin_function_or_method' 
+โ”‚   โ”‚   โ”‚       id='139696894164800'>
+โ”‚   โ”‚   โ”‚       args = ('file.txt', 'r'), kwargs = {}, effect = OSError('Mocked 
+โ”‚   โ”‚   โ”‚       IOError')
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚           def _execute_mock_call(self, /, *args, **kwargs):
+โ”‚   โ”‚   โ”‚               # separate from _increment_mock_call so that awaited 
+โ”‚   โ”‚   โ”‚       functions are
+โ”‚   โ”‚   โ”‚               # executed separately from their call, also AsyncMock 
+โ”‚   โ”‚   โ”‚       overrides this method
+โ”‚   โ”‚   โ”‚           
+โ”‚   โ”‚   โ”‚               effect = self.side_effect
+โ”‚   โ”‚   โ”‚               if effect is not None:
+โ”‚   โ”‚   โ”‚                   if _is_exception(effect):
+โ”‚   โ”‚   โ”‚       >               raise effect
+โ”‚   โ”‚   โ”‚       E               OSError: Mocked IOError
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       .pixi/envs/default/lib/python3.8/unittest/mock.py:1140: OSError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.0003183989319950342
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_file_handle_closed_error"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 45
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_file_handle_closed_error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00014771195128560066
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00021521199960261583
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 50
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "ValueError: I/O operation on closed file"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 50
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "ValueError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_file_handle_closed_error():
+โ”‚   โ”‚   โ”‚               # Accessing closed file raises ValueError
+โ”‚   โ”‚   โ”‚               f = io.StringIO("content")
+โ”‚   โ”‚   โ”‚               f.close()
+โ”‚   โ”‚   โ”‚       >       f.read()
+โ”‚   โ”‚   โ”‚       E       ValueError: I/O operation on closed file
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_io_utils.py:50: ValueError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00024127995129674673
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_os_error"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 51
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_os_error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.000274940044619143
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00021898397244513035
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 55
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "OSError: Simulated OSError"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "tests/test_io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 57
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: ""
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 55
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "OSError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "monkeypatch = <_pytest.monkeypatch.MonkeyPatch object
+โ”‚   โ”‚   โ”‚       at 0x7f0db7e6adf0>
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚           def test_os_error(monkeypatch):
+โ”‚   โ”‚   โ”‚               # Patch os.remove to raise OSError simulating filesystem
+โ”‚   โ”‚   โ”‚       error
+โ”‚   โ”‚   โ”‚               def raise_os_error(path):
+โ”‚   โ”‚   โ”‚                   raise OSError("Simulated OSError")
+โ”‚   โ”‚   โ”‚               monkeypatch.setattr("os.remove", raise_os_error)
+โ”‚   โ”‚   โ”‚       >       os.remove("file.txt")
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_io_utils.py:57: 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       path = 'file.txt'
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚           def raise_os_error(path):
+โ”‚   โ”‚   โ”‚       >       raise OSError("Simulated OSError")
+โ”‚   โ”‚   โ”‚       E       OSError: Simulated OSError
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_io_utils.py:55: OSError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00021282397210597992
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_write_file_readonly"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 58
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_write_file_readonly"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0007261839928105474
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0009029629873111844
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00015958398580551147
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_file_not_found_error"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 66
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_file_not_found_error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00013846997171640396
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00017680798191577196
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 69
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "FileNotFoundError: [Errno 2] No such file or 
+โ”‚   โ”‚   โ”‚   โ”‚       directory: 'no_such_file.txt'"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_io_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 69
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "FileNotFoundError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_file_not_found_error():
+โ”‚   โ”‚   โ”‚               # Raises FileNotFoundError when opening a non-existent 
+โ”‚   โ”‚   โ”‚       file
+โ”‚   โ”‚   โ”‚       >       open("no_such_file.txt", "r")
+โ”‚   โ”‚   โ”‚       E       FileNotFoundError: [Errno 2] No such file or directory: 
+โ”‚   โ”‚   โ”‚       'no_such_file.txt'
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_io_utils.py:69: FileNotFoundError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.0001557719660922885
+โ”‚   โ”‚       โ””โ”€โ”€ 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.00012939400039613247
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00017559307161718607
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ 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():
+โ”‚   โ”‚   โ”‚               # simulating a broken or faulty test implementation that
+โ”‚   โ”‚   โ”‚       will cause the test to error
+โ”‚   โ”‚   โ”‚       >       want_the_test_to_fail
+โ”‚   โ”‚   โ”‚       E       NameError: name 'want_the_test_to_fail' is not defined
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:16: NameError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00013757101260125637
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_call_missing_function"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 17
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_call_missing_function"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.000119043979793787
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0001510699512436986
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 20
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "AttributeError: module 'functions.math_utils' has 
+โ”‚   โ”‚   โ”‚   โ”‚       no attribute 'non_existent_function'"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 20
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "AttributeError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_call_missing_function():
+โ”‚   โ”‚   โ”‚               # Accessing a missing function attribute raises 
+โ”‚   โ”‚   โ”‚       AttributeError
+โ”‚   โ”‚   โ”‚       >       getattr(math_utils, "non_existent_function")()
+โ”‚   โ”‚   โ”‚       E       AttributeError: module 'functions.math_utils' has no 
+โ”‚   โ”‚   โ”‚       attribute 'non_existent_function'
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:20: AttributeError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00013786298222839832
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_pass[2-2-4]"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 22
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_addition_pass[2-2-4]"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "parametrize"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "pytestmark"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "2-2-4"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0003262300742790103
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00014390796422958374
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00014063192065805197
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_pass[1-5-6]"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 22
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_addition_pass[1-5-6]"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "parametrize"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "pytestmark"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "1-5-6"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0002630489179864526
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00013359496369957924
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00013252405915409327
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_pass[3-4-7]"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 22
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_addition_pass[3-4-7]"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "parametrize"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "pytestmark"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "3-4-7"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0002541639842092991
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00012574996799230576
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00013214396312832832
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_pass[3-5-8]"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 22
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_addition_pass[3-5-8]"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "parametrize"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "pytestmark"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "3-5-8"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00025280797854065895
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00012576999142766
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.0001280080759897828
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_pass[3-6-9]"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 22
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_addition_pass[3-6-9]"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "parametrize"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "pytestmark"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "3-6-9"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0002490709302946925
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00012148392852395773
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.0001270559150725603
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_pass_id"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 36
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_addition_pass_id"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "parametrize"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "pytestmark"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "a=2,b=2,expected=4"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00025460205506533384
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00012710702139884233
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00013038096949458122
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_pass_id"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 36
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_addition_pass_id"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "parametrize"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "pytestmark"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "a=1,b=5,expected=6"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00024689396377652884
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0001224930165335536
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.0001422489294782281
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_pass_id"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 36
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_addition_pass_id"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "parametrize"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "pytestmark"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "a=3,b=4,expected=7"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00025648402515798807
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00012656894978135824
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00012920796871185303
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_fail"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 48
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_addition_fail"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0001011720160022378
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0004662580322474241
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 51
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "assert 4 == 5
+โ”‚   โ”‚   โ”‚   โ”‚        +  where 4 = addition(2, 2)"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 51
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "AssertionError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_addition_fail():
+โ”‚   โ”‚   โ”‚               # Assertion failure: expected incorrect result
+โ”‚   โ”‚   โ”‚       >       assert addition(2, 2) == 5
+โ”‚   โ”‚   โ”‚       E       assert 4 == 5
+โ”‚   โ”‚   โ”‚       E        +  where 4 = addition(2, 2)
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:51: AssertionError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00013867393136024475
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_division_zero"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 52
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_division_zero"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0001165029825642705
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00015640503261238337
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/functions/math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 5
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "ZeroDivisionError: division by zero"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 55
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: ""
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "functions/math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 5
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "ZeroDivisionError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_division_zero():
+โ”‚   โ”‚   โ”‚               # Will raise ZeroDivisionError if not handled in 
+โ”‚   โ”‚   โ”‚       division
+โ”‚   โ”‚   โ”‚       >       division(1, 0)
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:55: 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       a = 1, b = 0
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚           def division(a, b):
+โ”‚   โ”‚   โ”‚       >       return a / b
+โ”‚   โ”‚   โ”‚       E       ZeroDivisionError: division by zero
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       functions/math_utils.py:5: ZeroDivisionError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.0001372910337522626
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_multiply_xfail"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 56
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "xfailed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_multiply_xfail"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "xfail"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "pytestmark"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00014673604164272547
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00027240999042987823
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "skipped"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 60
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "assert 4 == 5
+โ”‚   โ”‚   โ”‚   โ”‚        +  where 4 = multiply(2, 2)"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 60
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "AssertionError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "@pytest.mark.xfail(reason="Expected failure")
+โ”‚   โ”‚   โ”‚           def test_multiply_xfail():
+โ”‚   โ”‚   โ”‚               # Expected fail test (xfail): incorrect expected 
+โ”‚   โ”‚   โ”‚       multiply result
+โ”‚   โ”‚   โ”‚       >       assert multiply(2, 2) == 5
+โ”‚   โ”‚   โ”‚       E       assert 4 == 5
+โ”‚   โ”‚   โ”‚       E        +  where 4 = multiply(2, 2)
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:60: AssertionError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.0001355850836262107
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_runtime_error"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 61
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_runtime_error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0001181289553642273
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0001598019152879715
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 64
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "RuntimeError: Forced runtime error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 64
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "RuntimeError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_runtime_error():
+โ”‚   โ”‚   โ”‚               # Test raises an uncaught RuntimeError
+โ”‚   โ”‚   โ”‚       >       raise RuntimeError("Forced runtime error")
+โ”‚   โ”‚   โ”‚       E       RuntimeError: Forced runtime error
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:64: RuntimeError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00013109308201819658
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_memory_error"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 65
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_memory_error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0001173289492726326
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00014812604058533907
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 68
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "MemoryError: Simulated memory error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 68
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "MemoryError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_memory_error():
+โ”‚   โ”‚   โ”‚               # Manually raise MemoryError to simulate out-of-memory 
+โ”‚   โ”‚   โ”‚       condition
+โ”‚   โ”‚   โ”‚       >       raise MemoryError("Simulated memory error")
+โ”‚   โ”‚   โ”‚       E       MemoryError: Simulated memory error
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:68: MemoryError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00013674399815499783
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_timeout_error"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 69
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_timeout_error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00011517398525029421
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00014715595170855522
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 72
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "TimeoutError: Simulated timeout error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 72
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "TimeoutError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_timeout_error():
+โ”‚   โ”‚   โ”‚               # Manually raise TimeoutError simulating timeout 
+โ”‚   โ”‚   โ”‚       conditions
+โ”‚   โ”‚   โ”‚       >       raise TimeoutError("Simulated timeout error")
+โ”‚   โ”‚   โ”‚       E       TimeoutError: Simulated timeout error
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:72: TimeoutError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00013202405534684658
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_recursion_error"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 73
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_recursion_error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00012038892600685358
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0007694610394537449
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 77
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "RecursionError: maximum recursion depth exceeded"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 78
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: ""
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 77
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "in recursive"
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 77
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "in recursive"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_recursion_error():
+โ”‚   โ”‚   โ”‚               # Infinite recursion triggers RecursionError
+โ”‚   โ”‚   โ”‚               def recursive():
+โ”‚   โ”‚   โ”‚                   return recursive()
+โ”‚   โ”‚   โ”‚       >       recursive()
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:78: 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:77: in recursive
+โ”‚   โ”‚   โ”‚           return recursive()
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:77: in recursive
+โ”‚   โ”‚   โ”‚           return recursive()
+โ”‚   โ”‚   โ”‚       E   RecursionError: maximum recursion depth exceeded
+โ”‚   โ”‚   โ”‚       !!! Recursion detected (same locals & position)"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00013668497558683157
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_floating_point_error"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 79
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_floating_point_error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00011509202886372805
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00015865499153733253
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 82
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "FloatingPointError: Simulated floating point 
+โ”‚   โ”‚   โ”‚   โ”‚       error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 82
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "FloatingPointError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_floating_point_error():
+โ”‚   โ”‚   โ”‚               # Manually raise FloatingPointError
+โ”‚   โ”‚   โ”‚       >       raise FloatingPointError("Simulated floating point 
+โ”‚   โ”‚   โ”‚       error")
+โ”‚   โ”‚   โ”‚       E       FloatingPointError: Simulated floating point error
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:82: FloatingPointError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00013310008216649294
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_floating_point_overflow"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 83
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_floating_point_overflow"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00011614803224802017
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00015314901247620583
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 86
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "OverflowError: math range error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 86
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "OverflowError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_floating_point_overflow():
+โ”‚   โ”‚   โ”‚               # Exponential overflow triggers OverflowError
+โ”‚   โ”‚   โ”‚       >       math.exp(1000)
+โ”‚   โ”‚   โ”‚       E       OverflowError: math range error
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:86: OverflowError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00013554503675550222
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_value_error"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 87
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_value_error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00011774105951189995
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00015810609329491854
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 90
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "ValueError: invalid literal for int() with base 
+โ”‚   โ”‚   โ”‚   โ”‚       10: 'invalid'"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 90
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "ValueError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_value_error():
+โ”‚   โ”‚   โ”‚               # ValueError on invalid integer conversion
+โ”‚   โ”‚   โ”‚       >       int("invalid")
+โ”‚   โ”‚   โ”‚       E       ValueError: invalid literal for int() with base 10: 
+โ”‚   โ”‚   โ”‚       'invalid'
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:90: ValueError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00013520405627787113
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_wrong_argument_error"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 91
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_wrong_argument_error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00012709293514490128
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.000151293003000319
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 94
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "TypeError: 'int' object is not iterable"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 94
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "TypeError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_wrong_argument_error():
+โ”‚   โ”‚   โ”‚               # TypeError when passing wrong argument type to sum
+โ”‚   โ”‚   โ”‚       >       sum(5)
+โ”‚   โ”‚   โ”‚       E       TypeError: 'int' object is not iterable
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:94: TypeError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00014412403106689453
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_unhandled_exception"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 95
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_unhandled_exception"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00011704093776643276
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00015748105943202972
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 98
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "Exception: Generic unhandled exception"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 98
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "Exception"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_unhandled_exception():
+โ”‚   โ”‚   โ”‚               # Raises generic unhandled Exception
+โ”‚   โ”‚   โ”‚       >       raise Exception("Generic unhandled exception")
+โ”‚   โ”‚   โ”‚       E       Exception: Generic unhandled exception
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:98: Exception"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00013320997823029757
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_custom_error"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 99
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_custom_error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00011997099500149488
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0001519309589639306
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 102
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "test_math_utils.CustomError: Custom error 
+โ”‚   โ”‚   โ”‚   โ”‚       simulation"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 102
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "CustomError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_custom_error():
+โ”‚   โ”‚   โ”‚               # Raises user-defined CustomError exception
+โ”‚   โ”‚   โ”‚       >       raise CustomError("Custom error simulation")
+โ”‚   โ”‚   โ”‚       E       test_math_utils.CustomError: Custom error simulation
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:102: CustomError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00013642897829413414
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_stop_iteration_direct"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 103
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_stop_iteration_direct"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00011576898396015167
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00015537790022790432
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: 
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/s
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   ite-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 <lambda>"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ 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():
+โ”‚   โ”‚   โ”‚               # Directly raise StopIteration exception
+โ”‚   โ”‚   โ”‚       >       raise StopIteration()
+โ”‚   โ”‚   โ”‚       E       StopIteration
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:106: StopIteration
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       The above exception was the direct cause of the following 
+โ”‚   โ”‚   โ”‚       exception:
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       cls = <class '_pytest.runner.CallInfo'>
+โ”‚   โ”‚   โ”‚       func = <function call_and_report.<locals>.<lambda> at 
+โ”‚   โ”‚   โ”‚       0x7f0db841e4c0>
+โ”‚   โ”‚   โ”‚       when = 'call'
+โ”‚   โ”‚   โ”‚       reraise = (<class '_pytest.outcomes.Exit'>, <class 
+โ”‚   โ”‚   โ”‚       'KeyboardInterrupt'>)
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚           @classmethod
+โ”‚   โ”‚   โ”‚           def from_call(
+โ”‚   โ”‚   โ”‚               cls,
+โ”‚   โ”‚   โ”‚               func: Callable[[], TResult],
+โ”‚   โ”‚   โ”‚               when: Literal["collect", "setup", "call", "teardown"],
+โ”‚   โ”‚   โ”‚               reraise: type[BaseException] | 
+โ”‚   โ”‚   โ”‚       tuple[type[BaseException], ...] | None = None,
+โ”‚   โ”‚   โ”‚           ) -> CallInfo[TResult]:
+โ”‚   โ”‚   โ”‚               """Call func, wrapping the result in a CallInfo.
+โ”‚   โ”‚   โ”‚           
+โ”‚   โ”‚   โ”‚               :param func:
+โ”‚   โ”‚   โ”‚                   The function to call. Called without arguments.
+โ”‚   โ”‚   โ”‚               :type func: Callable[[], _pytest.runner.TResult]
+โ”‚   โ”‚   โ”‚               :param when:
+โ”‚   โ”‚   โ”‚                   The phase in which the function is called.
+โ”‚   โ”‚   โ”‚               :param reraise:
+โ”‚   โ”‚   โ”‚                   Exception or exceptions that shall propagate if 
+โ”‚   โ”‚   โ”‚       raised by the
+โ”‚   โ”‚   โ”‚                   function, instead of being wrapped in the CallInfo.
+โ”‚   โ”‚   โ”‚               """
+โ”‚   โ”‚   โ”‚               excinfo = None
+โ”‚   โ”‚   โ”‚               start = timing.time()
+โ”‚   โ”‚   โ”‚               precise_start = timing.perf_counter()
+โ”‚   โ”‚   โ”‚               try:
+โ”‚   โ”‚   โ”‚       >           result: TResult | None = func()
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       .pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py
+โ”‚   โ”‚   โ”‚       :341: 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       .pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py
+โ”‚   โ”‚   โ”‚       :242: in <lambda>
+โ”‚   โ”‚   โ”‚           lambda: runtest_hook(item=item, **kwds), when=when, 
+โ”‚   โ”‚   โ”‚       reraise=reraise
+โ”‚   โ”‚   โ”‚       .pixi/envs/default/lib/python3.8/site-packages/pluggy/_hooks.py:
+โ”‚   โ”‚   โ”‚       513: in __call__
+โ”‚   โ”‚   โ”‚           return self._hookexec(self.name, self._hookimpls.copy(), 
+โ”‚   โ”‚   โ”‚       kwargs, firstresult)
+โ”‚   โ”‚   โ”‚       .pixi/envs/default/lib/python3.8/site-packages/pluggy/_manager.p
+โ”‚   โ”‚   โ”‚       y:120: in _hookexec
+โ”‚   โ”‚   โ”‚           return self._inner_hookexec(hook_name, methods, kwargs, 
+โ”‚   โ”‚   โ”‚       firstresult)
+โ”‚   โ”‚   โ”‚       .pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexc
+โ”‚   โ”‚   โ”‚       eption.py:92: in pytest_runtest_call
+โ”‚   โ”‚   โ”‚           yield from thread_exception_runtest_hook()
+โ”‚   โ”‚   โ”‚       .pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexc
+โ”‚   โ”‚   โ”‚       eption.py:68: in thread_exception_runtest_hook
+โ”‚   โ”‚   โ”‚           yield
+โ”‚   โ”‚   โ”‚       .pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisabl
+โ”‚   โ”‚   โ”‚       eexception.py:95: in pytest_runtest_call
+โ”‚   โ”‚   โ”‚           yield from unraisable_exception_runtest_hook()
+โ”‚   โ”‚   โ”‚       .pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisabl
+โ”‚   โ”‚   โ”‚       eexception.py:70: in unraisable_exception_runtest_hook
+โ”‚   โ”‚   โ”‚           yield
+โ”‚   โ”‚   โ”‚       .pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.p
+โ”‚   โ”‚   โ”‚       y:846: in pytest_runtest_call
+โ”‚   โ”‚   โ”‚           yield from self._runtest_for(item, "call")
+โ”‚   โ”‚   โ”‚       .pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.p
+โ”‚   โ”‚   โ”‚       y:829: in _runtest_for
+โ”‚   โ”‚   โ”‚           yield
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       self = <CaptureManager _method='no' 
+โ”‚   โ”‚   โ”‚       _global_capturing=<MultiCapture out=None err=None in_=None 
+โ”‚   โ”‚   โ”‚       _state='suspended' _in_suspended=False> _capture_fixture=None>
+โ”‚   โ”‚   โ”‚       item = <Function test_stop_iteration_direct>
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚           @hookimpl(wrapper=True)
+โ”‚   โ”‚   โ”‚           def pytest_runtest_call(self, item: Item) -> 
+โ”‚   โ”‚   โ”‚       Generator[None]:
+โ”‚   โ”‚   โ”‚               with self.item_capture("call", item):
+โ”‚   โ”‚   โ”‚       >           return (yield)
+โ”‚   โ”‚   โ”‚       E           RuntimeError: generator raised StopIteration
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       .pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.p
+โ”‚   โ”‚   โ”‚       y:880: RuntimeError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.0002677320735529065
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_generator_exit_direct"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 107
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_generator_exit_direct"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0001417449675500393
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00017248094081878662
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 110
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "GeneratorExit"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 110
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "GeneratorExit"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_generator_exit_direct():
+โ”‚   โ”‚   โ”‚               # Directly raise GeneratorExit exception
+โ”‚   โ”‚   โ”‚       >       raise GeneratorExit()
+โ”‚   โ”‚   โ”‚       E       GeneratorExit
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:110: GeneratorExit"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00016654492355883121
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_malformed_code"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 111
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_malformed_code"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00012392201460897923
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00017078802920877934
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 114
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "  File "<string>", line 1
+โ”‚   โ”‚   โ”‚   โ”‚           def bad(:
+โ”‚   โ”‚   โ”‚   โ”‚                   ^
+โ”‚   โ”‚   โ”‚   โ”‚       SyntaxError: invalid syntax"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 114
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "SyntaxError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_malformed_code():
+โ”‚   โ”‚   โ”‚               # SyntaxError when executing malformed Python code
+โ”‚   โ”‚   โ”‚       >       exec("def bad(:\n pass")
+โ”‚   โ”‚   โ”‚       E         File "<string>", line 1
+โ”‚   โ”‚   โ”‚       E           def bad(:
+โ”‚   โ”‚   โ”‚       E                   ^
+โ”‚   โ”‚   โ”‚       E       SyntaxError: invalid syntax
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:114: SyntaxError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00015127402730286121
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_sys_exit"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 115
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_sys_exit"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0001187219750136137
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00015819701366126537
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 118
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "SystemExit: 1"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 118
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "SystemExit"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_sys_exit():
+โ”‚   โ”‚   โ”‚               # Simulate SystemExit via sys.exit
+โ”‚   โ”‚   โ”‚       >       sys.exit(1)
+โ”‚   โ”‚   โ”‚       E       SystemExit: 1
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:118: SystemExit"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00013676297385245562
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_broken_function"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 119
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_broken_function"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00012654298916459084
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0001669420162215829
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 123
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "TypeError: Broken function"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 124
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: ""
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 123
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "TypeError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_broken_function():
+โ”‚   โ”‚   โ”‚               # Simulate broken function raising TypeError
+โ”‚   โ”‚   โ”‚               def broken_func(*args, **kwargs):
+โ”‚   โ”‚   โ”‚                   raise TypeError("Broken function")
+โ”‚   โ”‚   โ”‚       >       broken_func()
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:124: 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       args = (), kwargs = {}
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚           def broken_func(*args, **kwargs):
+โ”‚   โ”‚   โ”‚       >       raise TypeError("Broken function")
+โ”‚   โ”‚   โ”‚       E       TypeError: Broken function
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:123: TypeError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.0001369150122627616
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_import_error"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 125
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_import_error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0001182629493996501
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.000159613904543221
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 127
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "ImportError: Simulated ImportError"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 127
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "ImportError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_import_error():
+โ”‚   โ”‚   โ”‚       >       raise ImportError("Simulated ImportError")
+โ”‚   โ”‚   โ”‚       E       ImportError: Simulated ImportError
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:127: ImportError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.0001364400377497077
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_module_not_found_error"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 128
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_module_not_found_error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00011761998757719994
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00047670502681285143
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "<frozen importlib._bootstrap>"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 973
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "ModuleNotFoundError: No module named 
+โ”‚   โ”‚   โ”‚   โ”‚       'non_existent_module_xyz'"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "tests/test_math_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 131
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: ""
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: 
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   ".pixi/envs/default/lib/python3.8/importlib/__init__.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 127
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "in import_module"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "<frozen importlib._bootstrap>"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 1014
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "in _gcd_import"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "<frozen importlib._bootstrap>"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 991
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "in _find_and_load"
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "<frozen importlib._bootstrap>"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 973
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "ModuleNotFoundError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_module_not_found_error():
+โ”‚   โ”‚   โ”‚               # Raises ModuleNotFoundError (subclass of ImportError) 
+โ”‚   โ”‚   โ”‚       for missing module
+โ”‚   โ”‚   โ”‚       >       importlib.import_module("non_existent_module_xyz")
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_math_utils.py:131: 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       .pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in 
+โ”‚   โ”‚   โ”‚       import_module
+โ”‚   โ”‚   โ”‚           return _bootstrap._gcd_import(name, package, level)
+โ”‚   โ”‚   โ”‚       <frozen importlib._bootstrap>:1014: in _gcd_import
+โ”‚   โ”‚   โ”‚           ???
+โ”‚   โ”‚   โ”‚       <frozen importlib._bootstrap>:991: in _find_and_load
+โ”‚   โ”‚   โ”‚           ???
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       name = 'non_existent_module_xyz'
+โ”‚   โ”‚   โ”‚       import_ = <function _gcd_import at 0x7f0dbc83f4c0>
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       >   ???
+โ”‚   โ”‚   โ”‚       E   ModuleNotFoundError: No module named 
+โ”‚   โ”‚   โ”‚       'non_existent_module_xyz'
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       <frozen importlib._bootstrap>:973: ModuleNotFoundError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00018405495211482048
+โ”‚   โ”‚       โ””โ”€โ”€ 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.00016108795534819365
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0001583929406479001
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00010466203093528748
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_string_utils.py::test_uppercase_type_error"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 11
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_uppercase_type_error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_string_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00011343008372932673
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00014667189680039883
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/functions/string_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 3
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "TypeError: Input cannot be None"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "tests/test_string_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 14
+โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: ""
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "functions/string_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 3
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "TypeError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_uppercase_type_error():
+โ”‚   โ”‚   โ”‚               # TypeError when input is None (invalid input)
+โ”‚   โ”‚   โ”‚       >       uppercase(None)
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_string_utils.py:14: 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       _ _ _ _ _ _ _ _ 
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       s = None
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚           def uppercase(s):
+โ”‚   โ”‚   โ”‚               if s is None:
+โ”‚   โ”‚   โ”‚       >           raise TypeError("Input cannot be None")
+โ”‚   โ”‚   โ”‚       E           TypeError: Input cannot be None
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       functions/string_utils.py:3: TypeError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00018305203411728144
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_string_utils.py::test_reverse_string"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 15
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_reverse_string"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_string_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00015661492943763733
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00016095698811113834
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00010271498467773199
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_string_utils.py::test_warning_emit"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 19
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_warning_emit"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_string_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00010676996316760778
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0001734130783006549
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00011708796955645084
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_string_utils.py::test_unicode_decode_error"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 23
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_unicode_decode_error"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_string_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00011107895988970995
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00016814901027828455
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_string_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 26
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "UnicodeDecodeError: 'utf-8' codec can't decode 
+โ”‚   โ”‚   โ”‚   โ”‚       byte 0xff in position 0: invalid start byte"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_string_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 26
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "UnicodeDecodeError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_unicode_decode_error():
+โ”‚   โ”‚   โ”‚               # UnicodeDecodeError when decoding invalid byte sequence
+โ”‚   โ”‚   โ”‚       >       b'\xff'.decode('utf-8')
+โ”‚   โ”‚   โ”‚       E       UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff
+โ”‚   โ”‚   โ”‚       in position 0: invalid start byte
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_string_utils.py:26: UnicodeDecodeError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00014081597328186035
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: 
+โ”‚   โ”‚   โ”‚   "tests/test_string_utils.py::test_unicode_decode_surrogateescape"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 27
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_unicode_decode_surrogateescape"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_string_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00011643394827842712
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00015874800737947226
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "failed"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_string_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 30
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "UnicodeDecodeError: 'utf-8' codec can't decode 
+โ”‚   โ”‚   โ”‚   โ”‚       byte 0x80 in position 0: invalid start byte"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_string_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 30
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "UnicodeDecodeError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "def test_unicode_decode_surrogateescape():
+โ”‚   โ”‚   โ”‚               # UnicodeDecodeError with strict error handler on 
+โ”‚   โ”‚   โ”‚       invalid byte
+โ”‚   โ”‚   โ”‚       >       b"\x80".decode("utf-8", errors="strict")
+โ”‚   โ”‚   โ”‚       E       UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80
+โ”‚   โ”‚   โ”‚       in position 0: invalid start byte
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_string_utils.py:30: UnicodeDecodeError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00013445201329886913
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_string_utils.py::test_import_warning"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 31
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_import_warning"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_string_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00011433695908635855
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00013735308311879635
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00011824897956103086
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”œโ”€โ”€ -
+โ”‚   โ”‚   โ”œโ”€โ”€ nodeid: "tests/test_string_utils.py::test_xfail_uppercase_digits"
+โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 35
+โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "xfailed"
+โ”‚   โ”‚   โ”œโ”€โ”€ keywords
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_xfail_uppercase_digits"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "xfail"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "pytestmark"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "test_string_utils.py"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ""
+โ”‚   โ”‚   โ”œโ”€โ”€ setup
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.00012995698489248753
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ”‚   โ”œโ”€โ”€ call
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ duration: 0.0006160879274830222
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ outcome: "skipped"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ crash
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_string_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lineno: 39
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ message: "AssertionError: assert 'ABC123' == 'ABC1234'
+โ”‚   โ”‚   โ”‚   โ”‚         
+โ”‚   โ”‚   โ”‚   โ”‚         - ABC1234
+โ”‚   โ”‚   โ”‚   โ”‚         ?       -
+โ”‚   โ”‚   โ”‚   โ”‚         + ABC123"
+โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ traceback
+โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ -
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ path: "tests/test_string_utils.py"
+โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ lineno: 39
+โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ message: "AssertionError"
+โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ longrepr: "@pytest.mark.xfail(reason="Expected failure: 
+โ”‚   โ”‚   โ”‚       uppercase does not handle digits")
+โ”‚   โ”‚   โ”‚           def test_xfail_uppercase_digits():
+โ”‚   โ”‚   โ”‚               # Expected fail test because uppercase won't change 
+โ”‚   โ”‚   โ”‚       digits
+โ”‚   โ”‚   โ”‚       >       assert uppercase("abc123") == "ABC1234"
+โ”‚   โ”‚   โ”‚       E       AssertionError: assert 'ABC123' == 'ABC1234'
+โ”‚   โ”‚   โ”‚       E         
+โ”‚   โ”‚   โ”‚       E         - ABC1234
+โ”‚   โ”‚   โ”‚       E         ?       -
+โ”‚   โ”‚   โ”‚       E         + ABC123
+โ”‚   โ”‚   โ”‚       
+โ”‚   โ”‚   โ”‚       tests/test_string_utils.py:39: AssertionError"
+โ”‚   โ”‚   โ””โ”€โ”€ teardown
+โ”‚   โ”‚       โ”œโ”€โ”€ duration: 0.00013392604887485504
+โ”‚   โ”‚       โ””โ”€โ”€ outcome: "passed"
+โ”‚   โ””โ”€โ”€ -
+โ”‚       โ”œโ”€โ”€ nodeid: "tests/test_string_utils.py::test_keyboard_interrupt_direct"
+โ”‚       โ”œโ”€โ”€ lineno: 40
+โ”‚       โ”œโ”€โ”€ outcome: "passed"
+โ”‚       โ”œโ”€โ”€ keywords
+โ”‚       โ”‚   โ”œโ”€โ”€ "test_keyboard_interrupt_direct"
+โ”‚       โ”‚   โ”œโ”€โ”€ "test_string_utils.py"
+โ”‚       โ”‚   โ”œโ”€โ”€ "tests"
+โ”‚       โ”‚   โ”œโ”€โ”€ "slic"
+โ”‚       โ”‚   โ””โ”€โ”€ ""
+โ”‚       โ””โ”€โ”€ setup
+โ”‚           โ”œโ”€โ”€ duration: 0.0001188239548355341
+โ”‚           โ””โ”€โ”€ outcome: "passed"
+โ””โ”€โ”€ warnings
+    โ””โ”€โ”€ -
+        โ”œโ”€โ”€ message: "Test warning"
+        โ”œโ”€โ”€ category: "UserWarning"
+        โ”œโ”€โ”€ when: "runtest"
+        โ”œโ”€โ”€ filename: "/workspace/tligui_y/slic/tests/test_string_utils.py"
+        โ””โ”€โ”€ lineno: 22
+
+ + diff --git a/ci-reports/markdown/json-tree-view.txt b/ci-reports/markdown/json-tree-view.txt index 1dabe97a..147ece32 100644 --- a/ci-reports/markdown/json-tree-view.txt +++ b/ci-reports/markdown/json-tree-view.txt @@ -1,113 +1,113 @@ ๐Ÿ“ ci-reports/markdown/pytest-report.json -โ”œโ”€โ”€ > created: 1752664720.4948497 -โ”œโ”€โ”€ > duration: 0.7662794589996338 -โ”œโ”€โ”€ > exitcode: 2 -โ”œโ”€โ”€ > root: "/workspace/tligui_y/slic" -โ”œโ”€โ”€ > environment -โ”œโ”€โ”€ > summary -โ”‚ โ”œโ”€โ”€ > passed: 16 -โ”‚ โ”œโ”€โ”€ > failed: 31 -โ”‚ โ”œโ”€โ”€ > xfailed: 2 -โ”‚ โ”œโ”€โ”€ > total: 49 -โ”‚ โ””โ”€โ”€ > collected: 49 -โ”œโ”€โ”€ > collectors -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "" -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > result -โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "." -โ”‚ โ”‚ โ””โ”€โ”€ > type: "Dir" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports/allure/data" -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > result -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports/allure/export" -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > result -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports/allure/history" -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > result -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports/allure/plugin/behaviors" -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > result -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports/allure/plugin/packages" -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > result -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports/allure/plugin/screen-diff" -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > result -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports/allure/plugin" -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > result -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports/allure/plugin/behaviors" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > type: "Dir" -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports/allure/plugin/packages" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > type: "Dir" -โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports/allure/plugin/screen-diff" -โ”‚ โ”‚ โ””โ”€โ”€ > type: "Dir" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports/allure/widgets" -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > result -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports/allure" -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > result -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports/allure/data" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > type: "Dir" -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports/allure/export" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > type: "Dir" -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports/allure/history" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > type: "Dir" -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports/allure/plugin" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > type: "Dir" -โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports/allure/widgets" -โ”‚ โ”‚ โ””โ”€โ”€ > type: "Dir" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports/coverage" -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > result -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports/markdown" -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > result -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports" -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > result -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports/allure" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > type: "Dir" -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports/coverage" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > type: "Dir" -โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports/markdown" -โ”‚ โ”‚ โ””โ”€โ”€ > type: "Dir" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "functions" -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > result -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_broken_fct.py" -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > result -โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: +โ”œโ”€โ”€ created: 1752665307.6458447 +โ”œโ”€โ”€ duration: 0.75913405418396 +โ”œโ”€โ”€ exitcode: 2 +โ”œโ”€โ”€ root: "/workspace/tligui_y/slic" +โ”œโ”€โ”€ environment +โ”œโ”€โ”€ summary +โ”‚ โ”œโ”€โ”€ passed: 16 +โ”‚ โ”œโ”€โ”€ failed: 31 +โ”‚ โ”œโ”€โ”€ xfailed: 2 +โ”‚ โ”œโ”€โ”€ total: 49 +โ”‚ โ””โ”€โ”€ collected: 49 +โ”œโ”€โ”€ collectors +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "" +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ result +โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "." +โ”‚ โ”‚ โ””โ”€โ”€ type: "Dir" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "ci-reports/allure/data" +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ result +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "ci-reports/allure/export" +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ result +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "ci-reports/allure/history" +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ result +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "ci-reports/allure/plugin/behaviors" +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ result +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "ci-reports/allure/plugin/packages" +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ result +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "ci-reports/allure/plugin/screen-diff" +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ result +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "ci-reports/allure/plugin" +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ result +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "ci-reports/allure/plugin/behaviors" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ type: "Dir" +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "ci-reports/allure/plugin/packages" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ type: "Dir" +โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "ci-reports/allure/plugin/screen-diff" +โ”‚ โ”‚ โ””โ”€โ”€ type: "Dir" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "ci-reports/allure/widgets" +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ result +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "ci-reports/allure" +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ result +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "ci-reports/allure/data" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ type: "Dir" +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "ci-reports/allure/export" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ type: "Dir" +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "ci-reports/allure/history" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ type: "Dir" +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "ci-reports/allure/plugin" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ type: "Dir" +โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "ci-reports/allure/widgets" +โ”‚ โ”‚ โ””โ”€โ”€ type: "Dir" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ 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: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ result +โ”‚ โ”‚ โ””โ”€โ”€ longrepr: โ”‚ โ”‚ ".pixi/envs/default/lib/python3.8/site-packages/_pytest/python.py:49 โ”‚ โ”‚ 3: in importtestmodule โ”‚ โ”‚ mod = import_path( @@ -138,11 +138,11 @@ โ”‚ โ”‚ E def test_valid_2(): โ”‚ โ”‚ E ^ โ”‚ โ”‚ E SyntaxError: invalid syntax" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_collector_error.py" -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > result -โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "ImportError while importing test module +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_collector_error.py" +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ result +โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "ImportError while importing test module โ”‚ โ”‚ '/workspace/tligui_y/slic/tests/test_collector_error.py'. โ”‚ โ”‚ Hint: make sure your test modules/packages have valid Python names. โ”‚ โ”‚ Traceback: @@ -152,337 +152,334 @@ โ”‚ โ”‚ tests/test_collector_error.py:1: in โ”‚ โ”‚ from no_existing_module.math_utils import * โ”‚ โ”‚ E ModuleNotFoundError: No module named 'no_existing_module'" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_io_utils.py" -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > result -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_io_utils.py::test_read_file" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 9 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_io_utils.py::test_write_file" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 16 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_io_utils.py::test_cause_io_error" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 22 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_io_utils.py::test_file_not_found" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 26 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_io_utils.py::test_permission_error" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 30 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_io_utils.py::test_mock_open_error" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 37 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ 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: 26 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_permission_error" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 30 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_mock_open_error" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 37 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ "tests/test_io_utils.py::test_file_handle_closed_error" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 45 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_io_utils.py::test_os_error" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 51 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_io_utils.py::test_write_file_readonly" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 58 -โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: -โ”‚ โ”‚ โ”‚ "tests/test_io_utils.py::test_file_not_found_error" -โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 66 -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > result -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_broken" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 13 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 45 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_os_error" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 51 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_write_file_readonly" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 58 +โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_file_not_found_error" +โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ””โ”€โ”€ lineno: 66 +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ 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 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 17 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ "tests/test_math_utils.py::test_addition_pass[2-2-4]" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 22 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 22 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ "tests/test_math_utils.py::test_addition_pass[1-5-6]" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 22 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 22 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ "tests/test_math_utils.py::test_addition_pass[3-4-7]" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 22 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 22 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ "tests/test_math_utils.py::test_addition_pass[3-5-8]" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 22 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 22 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ "tests/test_math_utils.py::test_addition_pass[3-6-9]" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 22 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_addition_pass_id" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 36 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_addition_pass_id" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 36 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_addition_pass_id" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 36 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_addition_fail" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 48 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_division_zero" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 52 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_multiply_xfail" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 56 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_runtime_error" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 61 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_memory_error" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 65 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_timeout_error" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 69 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_recursion_error" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 73 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 22 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_pass_id" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 36 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_pass_id" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 36 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_pass_id" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 36 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_fail" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 48 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_division_zero" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 52 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_multiply_xfail" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 56 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_runtime_error" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 61 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_memory_error" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 65 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_timeout_error" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 69 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_recursion_error" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 73 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ "tests/test_math_utils.py::test_floating_point_error" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 79 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 79 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ "tests/test_math_utils.py::test_floating_point_overflow" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 83 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_value_error" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 87 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 83 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_value_error" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 87 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ "tests/test_math_utils.py::test_wrong_argument_error" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 91 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: -โ”‚ โ”‚ โ”‚ โ”‚ "tests/test_math_utils.py::test_unhandled_exception" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 95 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_custom_error" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 99 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 91 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_unhandled_exception" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 95 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_custom_error" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 99 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ "tests/test_math_utils.py::test_stop_iteration_direct" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 103 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 103 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ "tests/test_math_utils.py::test_generator_exit_direct" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 107 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_malformed_code" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 111 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_sys_exit" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 115 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_broken_function" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 119 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_import_error" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 125 -โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 107 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_malformed_code" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 111 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_sys_exit" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 115 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_broken_function" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 119 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_import_error" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 125 +โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ "tests/test_math_utils.py::test_module_not_found_error" -โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 128 -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_string_utils.py" -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > result -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: -โ”‚ โ”‚ โ”‚ โ”‚ "tests/test_string_utils.py::test_uppercase_normal" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 7 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: +โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ””โ”€โ”€ lineno: 128 +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ 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 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_string_utils.py::test_reverse_string" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 15 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_string_utils.py::test_warning_emit" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 19 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 11 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_string_utils.py::test_reverse_string" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 15 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_string_utils.py::test_warning_emit" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 19 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ "tests/test_string_utils.py::test_unicode_decode_error" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 23 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 23 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ "tests/test_string_utils.py::test_unicode_decode_surrogatees โ”‚ โ”‚ โ”‚ โ”‚ cape" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 27 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_string_utils.py::test_import_warning" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 31 -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 27 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_string_utils.py::test_import_warning" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 31 +โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ "tests/test_string_utils.py::test_xfail_uppercase_digits" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 35 -โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 35 +โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ "tests/test_string_utils.py::test_keyboard_interrupt_direct" -โ”‚ โ”‚ โ”œโ”€โ”€ > type: "Function" -โ”‚ โ”‚ โ””โ”€โ”€ > lineno: 40 -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests" -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > result -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_broken_fct.py" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > type: "Module" -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_collector_error.py" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > type: "Module" -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_io_utils.py" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > type: "Module" -โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > type: "Module" -โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_string_utils.py" -โ”‚ โ”‚ โ””โ”€โ”€ > type: "Module" -โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”œโ”€โ”€ > nodeid: "." -โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ””โ”€โ”€ > result -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "ci-reports" -โ”‚ โ”‚ โ””โ”€โ”€ > type: "Dir" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "functions" -โ”‚ โ”‚ โ””โ”€โ”€ > type: "Package" -โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”œโ”€โ”€ > nodeid: "tests" -โ”‚ โ””โ”€โ”€ > type: "Dir" -โ”œโ”€โ”€ > tests -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_io_utils.py::test_read_file" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 9 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ”œโ”€โ”€ type: "Function" +โ”‚ โ”‚ โ””โ”€โ”€ lineno: 40 +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ 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: "ci-reports" +โ”‚ โ”‚ โ””โ”€โ”€ type: "Dir" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "functions" +โ”‚ โ”‚ โ””โ”€โ”€ type: "Package" +โ”‚ โ””โ”€โ”€ - +โ”‚ โ”œโ”€โ”€ nodeid: "tests" +โ”‚ โ””โ”€โ”€ type: "Dir" +โ”œโ”€โ”€ 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.0033981839660555124 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0004551240708678961 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0002447370206937194 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_io_utils.py::test_write_file" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 16 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.003519034944474697 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0004578919615596533 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00027404294814914465 +โ”‚ โ”‚ โ””โ”€โ”€ 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.00046795106027275324 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00028043007478117943 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00014021003153175116 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_io_utils.py::test_cause_io_error" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 22 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0004969410365447402 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0002863170811906457 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014169898349791765 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_cause_io_error" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 22 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_cause_io_error" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_io_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00011972303036600351 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00015517603605985641 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/functions/io_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 10 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "OSError: Forced IO Error for testing" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_io_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 25 -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "" -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "functions/io_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 10 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "OSError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_cause_io_error(): +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011287699453532696 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015965593047440052 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/functions/io_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 10 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "OSError: Forced IO Error for testing" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_io_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 25 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "" +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "functions/io_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 10 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "OSError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_cause_io_error(): โ”‚ โ”‚ โ”‚ # Raises manual IOError to simulate IO failure โ”‚ โ”‚ โ”‚ > cause_io_error() โ”‚ โ”‚ โ”‚ @@ -495,40 +492,40 @@ โ”‚ โ”‚ โ”‚ E OSError: Forced IO Error for testing โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ functions/io_utils.py:10: OSError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00015046808402985334 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_io_utils.py::test_file_not_found" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 26 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014494697097688913 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_file_not_found" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 26 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_file_not_found" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_io_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00012502109166234732 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001857229508459568 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/functions/io_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 2 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "FileNotFoundError: [Errno 2] No such file or +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012540107127279043 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00018100510351359844 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/functions/io_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 2 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "FileNotFoundError: [Errno 2] No such file or โ”‚ โ”‚ โ”‚ โ”‚ directory: 'nonexistent.file'" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_io_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 29 -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "" -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "functions/io_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 2 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "FileNotFoundError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_file_not_found(): +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_io_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 29 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "" +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "functions/io_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 2 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "FileNotFoundError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_file_not_found(): โ”‚ โ”‚ โ”‚ # Reading non-existing file raises FileNotFoundError โ”‚ โ”‚ โ”‚ > read_file("nonexistent.file") โ”‚ โ”‚ โ”‚ @@ -544,44 +541,44 @@ โ”‚ โ”‚ โ”‚ 'nonexistent.file' โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ functions/io_utils.py:2: FileNotFoundError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00014143798034638166 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_io_utils.py::test_permission_error" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 30 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.000137386959977448 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_permission_error" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 30 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_permission_error" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_io_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0002195399720221758 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00017697794828563929 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/tests/test_io_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 34 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "PermissionError: Permission denied" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_io_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 36 -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "functions/io_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 2 -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "in read_file" -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_io_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 34 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "PermissionError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "monkeypatch = <_pytest.monkeypatch.MonkeyPatch -โ”‚ โ”‚ โ”‚ object at 0x7f8f3ba157c0> +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0002257989253848791 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00018001499120146036 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_io_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 34 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "PermissionError: Permission denied" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_io_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 36 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "functions/io_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 2 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "in read_file" +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_io_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 34 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "PermissionError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "monkeypatch = <_pytest.monkeypatch.MonkeyPatch object +โ”‚ โ”‚ โ”‚ at 0x7f0db85d3460> โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ def test_permission_error(monkeypatch): โ”‚ โ”‚ โ”‚ # Patch open to raise PermissionError simulating access @@ -606,53 +603,53 @@ โ”‚ โ”‚ โ”‚ E PermissionError: Permission denied โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_io_utils.py:34: PermissionError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00016519695054739714 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_io_utils.py::test_mock_open_error" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 37 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00017847190611064434 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_mock_open_error" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 37 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_mock_open_error" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_io_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00019179994706064463 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0033247239189222455 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0002220420865342021 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.003379918052814901 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/u โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ nittest/mock.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 1140 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "OSError: Mocked IOError" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_io_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 43 -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 1140 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "OSError: Mocked IOError" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_io_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 43 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ".pixi/envs/default/lib/python3.8/unittest/mock.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 1081 -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "in __call__" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 1081 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "in __call__" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ".pixi/envs/default/lib/python3.8/unittest/mock.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 1085 -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "in _mock_call" -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 1085 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "in _mock_call" +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ".pixi/envs/default/lib/python3.8/unittest/mock.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 1140 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "OSError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "monkeypatch = <_pytest.monkeypatch.MonkeyPatch -โ”‚ โ”‚ โ”‚ object at 0x7f8f3b32c970> +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 1140 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "OSError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "monkeypatch = <_pytest.monkeypatch.MonkeyPatch object +โ”‚ โ”‚ โ”‚ at 0x7f0db7c0b8e0> โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ def test_mock_open_error(monkeypatch): โ”‚ โ”‚ โ”‚ # Mock open() to raise IOError simulating read error @@ -674,7 +671,7 @@ โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ self = +โ”‚ โ”‚ โ”‚ id='139696894164800'> โ”‚ โ”‚ โ”‚ args = ('file.txt', 'r'), kwargs = {}, effect = OSError('Mocked โ”‚ โ”‚ โ”‚ IOError') โ”‚ โ”‚ โ”‚ @@ -691,35 +688,35 @@ โ”‚ โ”‚ โ”‚ E OSError: Mocked IOError โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ .pixi/envs/default/lib/python3.8/unittest/mock.py:1140: OSError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00032889097929000854 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_io_utils.py::test_file_handle_closed_error" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 45 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0003183989319950342 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_file_handle_closed_error" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 45 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_file_handle_closed_error" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_io_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00014508399181067944 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00020654499530792236 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/tests/test_io_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 50 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "ValueError: I/O operation on closed file" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_io_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 50 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "ValueError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_file_handle_closed_error(): +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014771195128560066 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00021521199960261583 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_io_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 50 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "ValueError: I/O operation on closed file" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_io_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 50 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "ValueError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_file_handle_closed_error(): โ”‚ โ”‚ โ”‚ # Accessing closed file raises ValueError โ”‚ โ”‚ โ”‚ f = io.StringIO("content") โ”‚ โ”‚ โ”‚ f.close() @@ -727,40 +724,40 @@ โ”‚ โ”‚ โ”‚ E ValueError: I/O operation on closed file โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_io_utils.py:50: ValueError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00019534898456186056 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_io_utils.py::test_os_error" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 51 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00024127995129674673 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_os_error" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 51 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_os_error" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_io_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0002478549722582102 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00018553389236330986 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/tests/test_io_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 55 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "OSError: Simulated OSError" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_io_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 57 -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "" -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_io_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 55 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "OSError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "monkeypatch = <_pytest.monkeypatch.MonkeyPatch -โ”‚ โ”‚ โ”‚ object at 0x7f8f3b5968b0> +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.000274940044619143 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00021898397244513035 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_io_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 55 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "OSError: Simulated OSError" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_io_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 57 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "" +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_io_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 55 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "OSError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "monkeypatch = <_pytest.monkeypatch.MonkeyPatch object +โ”‚ โ”‚ โ”‚ at 0x7f0db7e6adf0> โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ def test_os_error(monkeypatch): โ”‚ โ”‚ โ”‚ # Patch os.remove to raise OSError simulating filesystem @@ -781,55 +778,55 @@ โ”‚ โ”‚ โ”‚ E OSError: Simulated OSError โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_io_utils.py:55: OSError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00019176898058503866 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_io_utils.py::test_write_file_readonly" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 58 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00021282397210597992 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_write_file_readonly" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 58 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_write_file_readonly" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_io_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0006594799924641848 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0009818690596148372 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001882790820673108 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_io_utils.py::test_file_not_found_error" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 66 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0007261839928105474 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0009029629873111844 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015958398580551147 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_io_utils.py::test_file_not_found_error" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 66 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_file_not_found_error" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_io_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00011718401219695807 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00016853201668709517 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/tests/test_io_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 69 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "FileNotFoundError: [Errno 2] No such file or +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013846997171640396 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00017680798191577196 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_io_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 69 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "FileNotFoundError: [Errno 2] No such file or โ”‚ โ”‚ โ”‚ โ”‚ directory: 'no_such_file.txt'" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_io_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 69 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "FileNotFoundError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_file_not_found_error(): +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_io_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 69 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "FileNotFoundError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_file_not_found_error(): โ”‚ โ”‚ โ”‚ # Raises FileNotFoundError when opening a non-existent โ”‚ โ”‚ โ”‚ file โ”‚ โ”‚ โ”‚ > open("no_such_file.txt", "r") @@ -837,72 +834,72 @@ โ”‚ โ”‚ โ”‚ 'no_such_file.txt' โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_io_utils.py:69: FileNotFoundError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001391620608046651 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_broken" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 13 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001557719660922885 +โ”‚ โ”‚ โ””โ”€โ”€ 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.00012975209392607212 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00017023098189383745 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > 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 +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012939400039613247 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00017559307161718607 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 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 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 16 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "NameError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_broken(): +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 16 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "NameError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_broken(): โ”‚ โ”‚ โ”‚ # simulating a broken or faulty test implementation that โ”‚ โ”‚ โ”‚ will cause the test to error โ”‚ โ”‚ โ”‚ > want_the_test_to_fail โ”‚ โ”‚ โ”‚ E NameError: name 'want_the_test_to_fail' is not defined โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:16: NameError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001467629335820675 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_call_missing_function" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 17 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013757101260125637 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_call_missing_function" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 17 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_call_missing_function" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_math_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001195219811052084 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00015935406554490328 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 20 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "AttributeError: module 'functions.math_utils' -โ”‚ โ”‚ โ”‚ โ”‚ has no attribute 'non_existent_function'" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 20 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "AttributeError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_call_missing_function(): +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.000119043979793787 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001510699512436986 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 20 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "AttributeError: module 'functions.math_utils' has +โ”‚ โ”‚ โ”‚ โ”‚ no attribute 'non_existent_function'" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 20 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "AttributeError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_call_missing_function(): โ”‚ โ”‚ โ”‚ # Accessing a missing function attribute raises โ”‚ โ”‚ โ”‚ AttributeError โ”‚ โ”‚ โ”‚ > getattr(math_utils, "non_existent_function")() @@ -910,14 +907,14 @@ โ”‚ โ”‚ โ”‚ attribute 'non_existent_function' โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:20: AttributeError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00013689405750483274 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_addition_pass[2-2-4]" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 22 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013786298222839832 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_pass[2-2-4]" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 22 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_addition_pass[2-2-4]" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "parametrize" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "pytestmark" @@ -926,20 +923,20 @@ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00032982195261865854 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00015412899665534496 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00014461902901530266 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_addition_pass[1-5-6]" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 22 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0003262300742790103 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014390796422958374 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014063192065805197 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_pass[1-5-6]" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 22 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_addition_pass[1-5-6]" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "parametrize" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "pytestmark" @@ -948,20 +945,20 @@ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0002591620432212949 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001313269603997469 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001329499064013362 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_addition_pass[3-4-7]" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 22 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0002630489179864526 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013359496369957924 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013252405915409327 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_pass[3-4-7]" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 22 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_addition_pass[3-4-7]" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "parametrize" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "pytestmark" @@ -970,20 +967,20 @@ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0002492060884833336 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00013099797070026398 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001333060208708048 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_addition_pass[3-5-8]" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 22 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0002541639842092991 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012574996799230576 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013214396312832832 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_pass[3-5-8]" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 22 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_addition_pass[3-5-8]" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "parametrize" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "pytestmark" @@ -992,20 +989,20 @@ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00023471307940781116 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001249669585376978 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00013107701670378447 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_addition_pass[3-6-9]" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 22 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00025280797854065895 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012576999142766 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001280080759897828 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_pass[3-6-9]" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 22 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_addition_pass[3-6-9]" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "parametrize" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "pytestmark" @@ -1014,20 +1011,20 @@ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00024543702602386475 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001270930515602231 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001318620052188635 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_addition_pass_id" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 36 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0002490709302946925 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012148392852395773 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001270559150725603 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_pass_id" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 36 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_addition_pass_id" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "parametrize" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "pytestmark" @@ -1036,20 +1033,20 @@ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0002478939713910222 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00012873101513832808 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00013132498133927584 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_addition_pass_id" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 36 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00025460205506533384 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012710702139884233 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013038096949458122 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_pass_id" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 36 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_addition_pass_id" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "parametrize" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "pytestmark" @@ -1058,20 +1055,20 @@ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0002351510338485241 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00012483401224017143 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00013621593825519085 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_addition_pass_id" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 36 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00024689396377652884 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001224930165335536 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001422489294782281 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_pass_id" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 36 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_addition_pass_id" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "parametrize" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "pytestmark" @@ -1080,81 +1077,81 @@ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0002436449285596609 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00012764707207679749 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001299659488722682 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_addition_fail" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 48 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00025648402515798807 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012656894978135824 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012920796871185303 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_addition_fail" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 48 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_addition_fail" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_math_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00011525291483849287 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0004504449898377061 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 51 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "assert 4 == 5 +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001011720160022378 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0004662580322474241 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 51 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "assert 4 == 5 โ”‚ โ”‚ โ”‚ โ”‚ + where 4 = addition(2, 2)" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 51 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "AssertionError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_addition_fail(): +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 51 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "AssertionError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_addition_fail(): โ”‚ โ”‚ โ”‚ # Assertion failure: expected incorrect result โ”‚ โ”‚ โ”‚ > assert addition(2, 2) == 5 โ”‚ โ”‚ โ”‚ E assert 4 == 5 โ”‚ โ”‚ โ”‚ E + where 4 = addition(2, 2) โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:51: AssertionError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00013923004735261202 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_division_zero" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 52 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013867393136024475 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_division_zero" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 52 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_division_zero" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_math_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00011578202247619629 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00015435507521033287 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/functions/math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 5 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "ZeroDivisionError: division by zero" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 55 -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "" -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "functions/math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 5 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "ZeroDivisionError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_division_zero(): +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001165029825642705 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015640503261238337 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/functions/math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 5 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "ZeroDivisionError: division by zero" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 55 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "" +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "functions/math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 5 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "ZeroDivisionError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_division_zero(): โ”‚ โ”‚ โ”‚ # Will raise ZeroDivisionError if not handled in โ”‚ โ”‚ โ”‚ division โ”‚ โ”‚ โ”‚ > division(1, 0) @@ -1170,14 +1167,14 @@ โ”‚ โ”‚ โ”‚ E ZeroDivisionError: division by zero โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ functions/math_utils.py:5: ZeroDivisionError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00013630592729896307 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_multiply_xfail" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 56 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "xfailed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001372910337522626 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_multiply_xfail" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 56 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "xfailed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_multiply_xfail" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "xfail" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "pytestmark" @@ -1185,23 +1182,23 @@ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.000130584929138422 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0002595739206299186 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "skipped" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 60 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "assert 4 == 5 +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014673604164272547 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00027240999042987823 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "skipped" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 60 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "assert 4 == 5 โ”‚ โ”‚ โ”‚ โ”‚ + where 4 = multiply(2, 2)" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 60 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "AssertionError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "@pytest.mark.xfail(reason="Expected failure") +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 60 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "AssertionError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "@pytest.mark.xfail(reason="Expected failure") โ”‚ โ”‚ โ”‚ def test_multiply_xfail(): โ”‚ โ”‚ โ”‚ # Expected fail test (xfail): incorrect expected โ”‚ โ”‚ โ”‚ multiply result @@ -1210,148 +1207,147 @@ โ”‚ โ”‚ โ”‚ E + where 4 = multiply(2, 2) โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:60: AssertionError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00013829406816512346 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_runtime_error" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 61 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001355850836262107 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_runtime_error" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 61 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_runtime_error" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_math_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001158490777015686 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001451020361855626 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 64 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "RuntimeError: Forced runtime error" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 64 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "RuntimeError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_runtime_error(): +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001181289553642273 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001598019152879715 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 64 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "RuntimeError: Forced runtime error" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 64 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "RuntimeError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_runtime_error(): โ”‚ โ”‚ โ”‚ # Test raises an uncaught RuntimeError โ”‚ โ”‚ โ”‚ > raise RuntimeError("Forced runtime error") โ”‚ โ”‚ โ”‚ E RuntimeError: Forced runtime error โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:64: RuntimeError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00013717403635382652 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_memory_error" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 65 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013109308201819658 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_memory_error" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 65 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_memory_error" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_math_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00012877897825092077 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00015291909221559763 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 68 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "MemoryError: Simulated memory error" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 68 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "MemoryError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_memory_error(): +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001173289492726326 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014812604058533907 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 68 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "MemoryError: Simulated memory error" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 68 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "MemoryError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_memory_error(): โ”‚ โ”‚ โ”‚ # Manually raise MemoryError to simulate out-of-memory โ”‚ โ”‚ โ”‚ condition โ”‚ โ”‚ โ”‚ > raise MemoryError("Simulated memory error") โ”‚ โ”‚ โ”‚ E MemoryError: Simulated memory error โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:68: MemoryError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0003005809849128127 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_timeout_error" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 69 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013674399815499783 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_timeout_error" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 69 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_timeout_error" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_math_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00015197996981441975 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00038034399040043354 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 72 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "TimeoutError: Simulated timeout error" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 72 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "TimeoutError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_timeout_error(): +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011517398525029421 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014715595170855522 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 72 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "TimeoutError: Simulated timeout error" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 72 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "TimeoutError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_timeout_error(): โ”‚ โ”‚ โ”‚ # Manually raise TimeoutError simulating timeout โ”‚ โ”‚ โ”‚ conditions โ”‚ โ”‚ โ”‚ > raise TimeoutError("Simulated timeout error") โ”‚ โ”‚ โ”‚ E TimeoutError: Simulated timeout error โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:72: TimeoutError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00017940904945135117 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_recursion_error" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 73 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013202405534684658 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_recursion_error" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 73 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_recursion_error" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_math_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00012345309369266033 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0007984440308064222 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 77 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "RecursionError: maximum recursion depth -โ”‚ โ”‚ โ”‚ โ”‚ exceeded" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 78 -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 77 -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "in recursive" -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 77 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "in recursive" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_recursion_error(): +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012038892600685358 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0007694610394537449 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 77 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "RecursionError: maximum recursion depth exceeded" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 78 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 77 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "in recursive" +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 77 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "in recursive" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_recursion_error(): โ”‚ โ”‚ โ”‚ # Infinite recursion triggers RecursionError โ”‚ โ”‚ โ”‚ def recursive(): โ”‚ โ”‚ โ”‚ return recursive() @@ -1366,308 +1362,308 @@ โ”‚ โ”‚ โ”‚ return recursive() โ”‚ โ”‚ โ”‚ E RecursionError: maximum recursion depth exceeded โ”‚ โ”‚ โ”‚ !!! Recursion detected (same locals & position)" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.000181928975507617 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_floating_point_error" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 79 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013668497558683157 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_floating_point_error" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 79 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_floating_point_error" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_math_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001324201002717018 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00017590296920388937 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 82 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "FloatingPointError: Simulated floating point +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011509202886372805 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015865499153733253 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 82 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "FloatingPointError: Simulated floating point โ”‚ โ”‚ โ”‚ โ”‚ error" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 82 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "FloatingPointError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_floating_point_error(): +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 82 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "FloatingPointError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_floating_point_error(): โ”‚ โ”‚ โ”‚ # Manually raise FloatingPointError โ”‚ โ”‚ โ”‚ > raise FloatingPointError("Simulated floating point โ”‚ โ”‚ โ”‚ error") โ”‚ โ”‚ โ”‚ E FloatingPointError: Simulated floating point error โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:82: FloatingPointError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00015144795179367065 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_floating_point_overflow" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 83 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013310008216649294 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_floating_point_overflow" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 83 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_floating_point_overflow" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_math_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00013014301657676697 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001623359275981784 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 86 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "OverflowError: math range error" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 86 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "OverflowError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_floating_point_overflow(): +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011614803224802017 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015314901247620583 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 86 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "OverflowError: math range error" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 86 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "OverflowError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_floating_point_overflow(): โ”‚ โ”‚ โ”‚ # Exponential overflow triggers OverflowError โ”‚ โ”‚ โ”‚ > math.exp(1000) โ”‚ โ”‚ โ”‚ E OverflowError: math range error โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:86: OverflowError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001369250239804387 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_value_error" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 87 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013554503675550222 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_value_error" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 87 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_value_error" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_math_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00012534495908766985 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00016797601711004972 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 90 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "ValueError: invalid literal for int() with base +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011774105951189995 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015810609329491854 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 90 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "ValueError: invalid literal for int() with base โ”‚ โ”‚ โ”‚ โ”‚ 10: 'invalid'" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 90 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "ValueError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_value_error(): +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 90 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "ValueError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_value_error(): โ”‚ โ”‚ โ”‚ # ValueError on invalid integer conversion โ”‚ โ”‚ โ”‚ > int("invalid") โ”‚ โ”‚ โ”‚ E ValueError: invalid literal for int() with base 10: โ”‚ โ”‚ โ”‚ 'invalid' โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:90: ValueError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00013342592865228653 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_wrong_argument_error" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 91 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013520405627787113 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_wrong_argument_error" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 91 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_wrong_argument_error" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_math_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00011812197044491768 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00015384401194751263 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 94 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "TypeError: 'int' object is not iterable" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 94 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "TypeError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_wrong_argument_error(): +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012709293514490128 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.000151293003000319 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 94 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "TypeError: 'int' object is not iterable" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 94 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "TypeError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_wrong_argument_error(): โ”‚ โ”‚ โ”‚ # TypeError when passing wrong argument type to sum โ”‚ โ”‚ โ”‚ > sum(5) โ”‚ โ”‚ โ”‚ E TypeError: 'int' object is not iterable โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:94: TypeError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00018619000911712646 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_unhandled_exception" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 95 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014412403106689453 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_unhandled_exception" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 95 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_unhandled_exception" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_math_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00011823500972241163 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00024374201893806458 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 98 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "Exception: Generic unhandled exception" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 98 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "Exception" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_unhandled_exception(): +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011704093776643276 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015748105943202972 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 98 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "Exception: Generic unhandled exception" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 98 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "Exception" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_unhandled_exception(): โ”‚ โ”‚ โ”‚ # Raises generic unhandled Exception โ”‚ โ”‚ โ”‚ > raise Exception("Generic unhandled exception") โ”‚ โ”‚ โ”‚ E Exception: Generic unhandled exception โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:98: Exception" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00014860706869512796 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_custom_error" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 99 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013320997823029757 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_custom_error" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 99 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_custom_error" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_math_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00011518807150423527 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00017900997772812843 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 102 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "test_math_utils.CustomError: Custom error +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011997099500149488 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001519309589639306 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 102 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "test_math_utils.CustomError: Custom error โ”‚ โ”‚ โ”‚ โ”‚ simulation" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 102 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "CustomError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_custom_error(): +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 102 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "CustomError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_custom_error(): โ”‚ โ”‚ โ”‚ # Raises user-defined CustomError exception โ”‚ โ”‚ โ”‚ > raise CustomError("Custom error simulation") โ”‚ โ”‚ โ”‚ E test_math_utils.CustomError: Custom error simulation โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:102: CustomError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0002067439490929246 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_stop_iteration_direct" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 103 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013642897829413414 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_stop_iteration_direct" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 103 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_stop_iteration_direct" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_math_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00019471696577966213 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0002521299757063389 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011576898396015167 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015537790022790432 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/s โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ite-packages/_pytest/capture.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 880 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "RuntimeError: generator raised StopIteration" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 880 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "RuntimeError: generator raised StopIteration" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ".pixi/envs/default/lib/python3.8/site-packages/_pytest/ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ runner.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 341 -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 341 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ".pixi/envs/default/lib/python3.8/site-packages/_pytest/ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ runner.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 242 -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "in " -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 242 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "in " +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ".pixi/envs/default/lib/python3.8/site-packages/pluggy/_ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ hooks.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 513 -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "in __call__" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 513 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "in __call__" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ".pixi/envs/default/lib/python3.8/site-packages/pluggy/_ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ manager.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 120 -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "in _hookexec" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 120 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "in _hookexec" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ".pixi/envs/default/lib/python3.8/site-packages/_pytest/ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ threadexception.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 92 -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "in pytest_runtest_call" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 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" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 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" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 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" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 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" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 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" -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 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(): +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 880 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "RuntimeError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_stop_iteration_direct(): โ”‚ โ”‚ โ”‚ # Directly raise StopIteration exception โ”‚ โ”‚ โ”‚ > raise StopIteration() โ”‚ โ”‚ โ”‚ E StopIteration @@ -1679,7 +1675,7 @@ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ cls = โ”‚ โ”‚ โ”‚ func = . at -โ”‚ โ”‚ โ”‚ 0x7f8f3b6019d0> +โ”‚ โ”‚ โ”‚ 0x7f0db841e4c0> โ”‚ โ”‚ โ”‚ when = 'call' โ”‚ โ”‚ โ”‚ reraise = (, ) @@ -1761,72 +1757,72 @@ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ .pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.p โ”‚ โ”‚ โ”‚ y:880: RuntimeError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00028385198675096035 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_generator_exit_direct" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 107 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0002677320735529065 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_generator_exit_direct" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 107 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_generator_exit_direct" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_math_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00018023396842181683 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00017169804777950048 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 110 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "GeneratorExit" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 110 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "GeneratorExit" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_generator_exit_direct(): +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001417449675500393 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00017248094081878662 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 110 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "GeneratorExit" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 110 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "GeneratorExit" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_generator_exit_direct(): โ”‚ โ”‚ โ”‚ # Directly raise GeneratorExit exception โ”‚ โ”‚ โ”‚ > raise GeneratorExit() โ”‚ โ”‚ โ”‚ E GeneratorExit โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:110: GeneratorExit" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00016951095312833786 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_malformed_code" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 111 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00016654492355883121 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_malformed_code" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 111 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_malformed_code" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_math_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001249730121344328 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00016494898591190577 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 114 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: " File "", line 1 +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012392201460897923 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00017078802920877934 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 114 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: " File "", line 1 โ”‚ โ”‚ โ”‚ โ”‚ def bad(: โ”‚ โ”‚ โ”‚ โ”‚ ^ โ”‚ โ”‚ โ”‚ โ”‚ SyntaxError: invalid syntax" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 114 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "SyntaxError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_malformed_code(): +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 114 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "SyntaxError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_malformed_code(): โ”‚ โ”‚ โ”‚ # SyntaxError when executing malformed Python code โ”‚ โ”‚ โ”‚ > exec("def bad(:\n pass") โ”‚ โ”‚ โ”‚ E File "", line 1 @@ -1835,73 +1831,73 @@ โ”‚ โ”‚ โ”‚ E SyntaxError: invalid syntax โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:114: SyntaxError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00013920606579631567 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_sys_exit" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 115 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015127402730286121 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_sys_exit" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 115 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_sys_exit" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_math_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00011702196206897497 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001509649446234107 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 118 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "SystemExit: 1" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 118 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "SystemExit" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_sys_exit(): +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001187219750136137 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015819701366126537 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 118 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "SystemExit: 1" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 118 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "SystemExit" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_sys_exit(): โ”‚ โ”‚ โ”‚ # Simulate SystemExit via sys.exit โ”‚ โ”‚ โ”‚ > sys.exit(1) โ”‚ โ”‚ โ”‚ E SystemExit: 1 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:118: SystemExit" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00014585896860808134 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_broken_function" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 119 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013676297385245562 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_broken_function" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 119 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_broken_function" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_math_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00012109009549021721 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00015733495820313692 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 123 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "TypeError: Broken function" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 124 -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "" -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 123 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "TypeError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_broken_function(): +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012654298916459084 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001669420162215829 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 123 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "TypeError: Broken function" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 124 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "" +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 123 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "TypeError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_broken_function(): โ”‚ โ”‚ โ”‚ # Simulate broken function raising TypeError โ”‚ โ”‚ โ”‚ def broken_func(*args, **kwargs): โ”‚ โ”‚ โ”‚ raise TypeError("Broken function") @@ -1918,86 +1914,86 @@ โ”‚ โ”‚ โ”‚ E TypeError: Broken function โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:123: TypeError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001404089853167534 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_import_error" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 125 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001369150122627616 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_import_error" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 125 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_import_error" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_math_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00011588295456022024 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00015314901247620583 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 127 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "ImportError: Simulated ImportError" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 127 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "ImportError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_import_error(): +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001182629493996501 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.000159613904543221 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 127 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "ImportError: Simulated ImportError" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 127 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "ImportError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_import_error(): โ”‚ โ”‚ โ”‚ > raise ImportError("Simulated ImportError") โ”‚ โ”‚ โ”‚ E ImportError: Simulated ImportError โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:127: ImportError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00014999997802078724 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_math_utils.py::test_module_not_found_error" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 128 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001364400377497077 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_math_utils.py::test_module_not_found_error" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 128 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_module_not_found_error" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_math_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00013215094804763794 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0005158550338819623 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 973 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "ModuleNotFoundError: No module named +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011761998757719994 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00047670502681285143 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 973 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "ModuleNotFoundError: No module named โ”‚ โ”‚ โ”‚ โ”‚ 'non_existent_module_xyz'" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_math_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 131 -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_math_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 131 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ".pixi/envs/default/lib/python3.8/importlib/__init__.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 127 -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "in import_module" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "" -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 1014 -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "in _gcd_import" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "" -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 991 -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "in _find_and_load" -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 973 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "ModuleNotFoundError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_module_not_found_error(): +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 127 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "in import_module" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "" +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 1014 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "in _gcd_import" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "" +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 991 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "in _find_and_load" +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 973 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "ModuleNotFoundError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_module_not_found_error(): โ”‚ โ”‚ โ”‚ # Raises ModuleNotFoundError (subclass of ImportError) โ”‚ โ”‚ โ”‚ for missing module โ”‚ โ”‚ โ”‚ > importlib.import_module("non_existent_module_xyz") @@ -2016,65 +2012,65 @@ โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ name = 'non_existent_module_xyz' -โ”‚ โ”‚ โ”‚ import_ = +โ”‚ โ”‚ โ”‚ import_ = โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ > ??? โ”‚ โ”‚ โ”‚ E ModuleNotFoundError: No module named โ”‚ โ”‚ โ”‚ 'non_existent_module_xyz' โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ :973: ModuleNotFoundError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00014162692241370678 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_string_utils.py::test_uppercase_normal" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 7 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00018405495211482048 +โ”‚ โ”‚ โ””โ”€โ”€ 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.00013849802780896425 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00014465604908764362 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00010107597336173058 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_string_utils.py::test_uppercase_type_error" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 11 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00016108795534819365 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001583929406479001 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00010466203093528748 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_string_utils.py::test_uppercase_type_error" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 11 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_uppercase_type_error" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_string_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00010458508040755987 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.000142168952152133 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "/workspace/tligui_y/slic/functions/string_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 3 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "TypeError: Input cannot be None" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_string_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 14 -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "" -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "functions/string_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 3 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "TypeError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_uppercase_type_error(): +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011343008372932673 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014667189680039883 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/functions/string_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 3 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "TypeError: Input cannot be None" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_string_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 14 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "" +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "functions/string_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 3 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "TypeError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_uppercase_type_error(): โ”‚ โ”‚ โ”‚ # TypeError when input is None (invalid input) โ”‚ โ”‚ โ”‚ > uppercase(None) โ”‚ โ”‚ โ”‚ @@ -2090,113 +2086,111 @@ โ”‚ โ”‚ โ”‚ E TypeError: Input cannot be None โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ functions/string_utils.py:3: TypeError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00013803201727569103 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_string_utils.py::test_reverse_string" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 15 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00018305203411728144 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_string_utils.py::test_reverse_string" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 15 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_reverse_string" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_string_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00013190298341214657 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00014335406012833118 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001002730568870902 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_string_utils.py::test_warning_emit" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 19 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015661492943763733 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00016095698811113834 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00010271498467773199 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_string_utils.py::test_warning_emit" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 19 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_warning_emit" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_string_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00011725397780537605 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001423159847036004 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 9.571202099323273e-05 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_string_utils.py::test_unicode_decode_error" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 23 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00010676996316760778 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001734130783006549 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011708796955645084 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_string_utils.py::test_unicode_decode_error" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 23 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_unicode_decode_error" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_string_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00012456800322979689 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.000175852095708251 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ "/workspace/tligui_y/slic/tests/test_string_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 26 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "UnicodeDecodeError: 'utf-8' codec can't decode +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011107895988970995 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00016814901027828455 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_string_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 26 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "UnicodeDecodeError: 'utf-8' codec can't decode โ”‚ โ”‚ โ”‚ โ”‚ byte 0xff in position 0: invalid start byte" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_string_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 26 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "UnicodeDecodeError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_unicode_decode_error(): +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_string_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 26 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "UnicodeDecodeError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_unicode_decode_error(): โ”‚ โ”‚ โ”‚ # UnicodeDecodeError when decoding invalid byte sequence โ”‚ โ”‚ โ”‚ > b'\xff'.decode('utf-8') โ”‚ โ”‚ โ”‚ E UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff โ”‚ โ”‚ โ”‚ in position 0: invalid start byte โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_string_utils.py:26: UnicodeDecodeError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00012837094254791737 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014081597328186035 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ "tests/test_string_utils.py::test_unicode_decode_surrogateescape" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 27 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 27 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_unicode_decode_surrogateescape" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_string_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00011721998453140259 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.0001621120609343052 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "failed" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ "/workspace/tligui_y/slic/tests/test_string_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 30 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "UnicodeDecodeError: 'utf-8' codec can't decode +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011643394827842712 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015874800737947226 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "failed" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_string_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 30 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "UnicodeDecodeError: 'utf-8' codec can't decode โ”‚ โ”‚ โ”‚ โ”‚ byte 0x80 in position 0: invalid start byte" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_string_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 30 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "UnicodeDecodeError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "def test_unicode_decode_surrogateescape(): +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_string_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 30 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "UnicodeDecodeError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "def test_unicode_decode_surrogateescape(): โ”‚ โ”‚ โ”‚ # UnicodeDecodeError with strict error handler on โ”‚ โ”‚ โ”‚ invalid byte โ”‚ โ”‚ โ”‚ > b"\x80".decode("utf-8", errors="strict") @@ -2204,33 +2198,33 @@ โ”‚ โ”‚ โ”‚ in position 0: invalid start byte โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_string_utils.py:30: UnicodeDecodeError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00013801106251776218 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_string_utils.py::test_import_warning" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 31 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013445201329886913 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_string_utils.py::test_import_warning" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 31 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_import_warning" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_string_utils.py" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00011621497105807066 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00014464999549090862 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 9.954790584743023e-05 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > list item -โ”‚ โ”‚ โ”œโ”€โ”€ > nodeid: "tests/test_string_utils.py::test_xfail_uppercase_digits" -โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 35 -โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "xfailed" -โ”‚ โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011433695908635855 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013735308311879635 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011824897956103086 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_string_utils.py::test_xfail_uppercase_digits" +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 35 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "xfailed" +โ”‚ โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "test_xfail_uppercase_digits" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "xfail" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "pytestmark" @@ -2238,27 +2232,26 @@ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ”‚ โ”œโ”€โ”€ > setup -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00011404999531805515 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ”‚ โ”œโ”€โ”€ > call -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.000621762010268867 -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > outcome: "skipped" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > crash -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: -โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ "/workspace/tligui_y/slic/tests/test_string_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 39 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "AssertionError: assert 'ABC123' == 'ABC1234' +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012995698489248753 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0006160879274830222 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: "skipped" +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "/workspace/tligui_y/slic/tests/test_string_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 39 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "AssertionError: assert 'ABC123' == 'ABC1234' โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ - ABC1234 โ”‚ โ”‚ โ”‚ โ”‚ ? - โ”‚ โ”‚ โ”‚ โ”‚ + ABC123" -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > traceback -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > path: "tests/test_string_utils.py" -โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ > lineno: 39 -โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > message: "AssertionError" -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ > longrepr: "@pytest.mark.xfail(reason="Expected failure: +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: "tests/test_string_utils.py" +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 39 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: "AssertionError" +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: "@pytest.mark.xfail(reason="Expected failure: โ”‚ โ”‚ โ”‚ uppercase does not handle digits") โ”‚ โ”‚ โ”‚ def test_xfail_uppercase_digits(): โ”‚ โ”‚ โ”‚ # Expected fail test because uppercase won't change @@ -2271,27 +2264,26 @@ โ”‚ โ”‚ โ”‚ E + ABC123 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ tests/test_string_utils.py:39: AssertionError" -โ”‚ โ”‚ โ””โ”€โ”€ > teardown -โ”‚ โ”‚ โ”œโ”€โ”€ > duration: 0.00013739499263465405 -โ”‚ โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ”‚ โ””โ”€โ”€ > list item -โ”‚ โ”œโ”€โ”€ > nodeid: -โ”‚ โ”‚ "tests/test_string_utils.py::test_keyboard_interrupt_direct" -โ”‚ โ”œโ”€โ”€ > lineno: 40 -โ”‚ โ”œโ”€โ”€ > outcome: "passed" -โ”‚ โ”œโ”€โ”€ > keywords +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013392604887485504 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: "passed" +โ”‚ โ””โ”€โ”€ - +โ”‚ โ”œโ”€โ”€ nodeid: "tests/test_string_utils.py::test_keyboard_interrupt_direct" +โ”‚ โ”œโ”€โ”€ lineno: 40 +โ”‚ โ”œโ”€โ”€ outcome: "passed" +โ”‚ โ”œโ”€โ”€ keywords โ”‚ โ”‚ โ”œโ”€โ”€ "test_keyboard_interrupt_direct" โ”‚ โ”‚ โ”œโ”€โ”€ "test_string_utils.py" โ”‚ โ”‚ โ”œโ”€โ”€ "tests" โ”‚ โ”‚ โ”œโ”€โ”€ "slic" โ”‚ โ”‚ โ””โ”€โ”€ "" -โ”‚ โ””โ”€โ”€ > setup -โ”‚ โ”œโ”€โ”€ > duration: 0.00011632498353719711 -โ”‚ โ””โ”€โ”€ > outcome: "passed" -โ””โ”€โ”€ > warnings - โ””โ”€โ”€ > list item - โ”œโ”€โ”€ > message: "Test warning" - โ”œโ”€โ”€ > category: "UserWarning" - โ”œโ”€โ”€ > when: "runtest" - โ”œโ”€โ”€ > filename: "/workspace/tligui_y/slic/tests/test_string_utils.py" - โ””โ”€โ”€ > lineno: 22 +โ”‚ โ””โ”€โ”€ setup +โ”‚ โ”œโ”€โ”€ duration: 0.0001188239548355341 +โ”‚ โ””โ”€โ”€ outcome: "passed" +โ””โ”€โ”€ warnings + โ””โ”€โ”€ - + โ”œโ”€โ”€ message: "Test warning" + โ”œโ”€โ”€ category: "UserWarning" + โ”œโ”€โ”€ when: "runtest" + โ”œโ”€โ”€ filename: "/workspace/tligui_y/slic/tests/test_string_utils.py" + โ””โ”€โ”€ lineno: 22 diff --git a/ci-reports/markdown/pytest-report.json b/ci-reports/markdown/pytest-report.json index 7b72c91c..a048a976 100644 --- a/ci-reports/markdown/pytest-report.json +++ b/ci-reports/markdown/pytest-report.json @@ -1 +1 @@ -{"created": 1752665025.376094, "duration": 0.7612209320068359, "exitcode": 2, "root": "/workspace/tligui_y/slic", "environment": {}, "summary": {"passed": 16, "failed": 31, "xfailed": 2, "total": 49, "collected": 49}, "collectors": [{"nodeid": "", "outcome": "passed", "result": [{"nodeid": ".", "type": "Dir"}]}, {"nodeid": "ci-reports/allure/data", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/export", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/history", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/plugin/behaviors", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/plugin/packages", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/plugin/screen-diff", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/plugin", "outcome": "passed", "result": [{"nodeid": "ci-reports/allure/plugin/behaviors", "type": "Dir"}, {"nodeid": "ci-reports/allure/plugin/packages", "type": "Dir"}, {"nodeid": "ci-reports/allure/plugin/screen-diff", "type": "Dir"}]}, {"nodeid": "ci-reports/allure/widgets", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure", "outcome": "passed", "result": [{"nodeid": "ci-reports/allure/data", "type": "Dir"}, {"nodeid": "ci-reports/allure/export", "type": "Dir"}, {"nodeid": "ci-reports/allure/history", "type": "Dir"}, {"nodeid": "ci-reports/allure/plugin", "type": "Dir"}, {"nodeid": "ci-reports/allure/widgets", "type": "Dir"}]}, {"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": "failed", "result": [], "longrepr": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/python.py:493: in importtestmodule\n mod = import_path(\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/pathlib.py:587: in import_path\n importlib.import_module(module_name)\n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\n:1014: in _gcd_import\n ???\n:991: in _find_and_load\n ???\n:975: in _find_and_load_unlocked\n ???\n:671: in _load_unlocked\n ???\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rewrite.py:175: in exec_module\n source_stat, co = _rewrite_test(fn, self.config)\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rewrite.py:355: in _rewrite_test\n tree = ast.parse(source, filename=strfn)\n.pixi/envs/default/lib/python3.8/ast.py:47: in parse\n return compile(source, filename, mode, flags,\nE File \"/workspace/tligui_y/slic/tests/test_broken_fct.py\", line 8\nE def test_valid_2():\nE ^\nE SyntaxError: invalid syntax"}, {"nodeid": "tests/test_collector_error.py", "outcome": "failed", "result": [], "longrepr": "ImportError while importing test module '/workspace/tligui_y/slic/tests/test_collector_error.py'.\nHint: make sure your test modules/packages have valid Python names.\nTraceback:\n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\ntests/test_collector_error.py:1: in \n from no_existing_module.math_utils import *\nE ModuleNotFoundError: No module named 'no_existing_module'"}, {"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": 26}, {"nodeid": "tests/test_io_utils.py::test_permission_error", "type": "Function", "lineno": 30}, {"nodeid": "tests/test_io_utils.py::test_mock_open_error", "type": "Function", "lineno": 37}, {"nodeid": "tests/test_io_utils.py::test_file_handle_closed_error", "type": "Function", "lineno": 45}, {"nodeid": "tests/test_io_utils.py::test_os_error", "type": "Function", "lineno": 51}, {"nodeid": "tests/test_io_utils.py::test_write_file_readonly", "type": "Function", "lineno": 58}, {"nodeid": "tests/test_io_utils.py::test_file_not_found_error", "type": "Function", "lineno": 66}]}, {"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[2-2-4]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[1-5-6]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-7]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-5-8]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-6-9]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=2,b=2,expected=4]", "type": "Function", "lineno": 36}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=1,b=5,expected=6]", "type": "Function", "lineno": 36}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=3,b=4,expected=7]", "type": "Function", "lineno": 36}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "type": "Function", "lineno": 48}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "type": "Function", "lineno": 52}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "type": "Function", "lineno": 56}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "type": "Function", "lineno": 61}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "type": "Function", "lineno": 65}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "type": "Function", "lineno": 69}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "type": "Function", "lineno": 73}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "type": "Function", "lineno": 79}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "type": "Function", "lineno": 83}, {"nodeid": "tests/test_math_utils.py::test_value_error", "type": "Function", "lineno": 87}, {"nodeid": "tests/test_math_utils.py::test_wrong_argument_error", "type": "Function", "lineno": 91}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "type": "Function", "lineno": 95}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "type": "Function", "lineno": 99}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "type": "Function", "lineno": 103}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "type": "Function", "lineno": 107}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "type": "Function", "lineno": 111}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "type": "Function", "lineno": 115}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "type": "Function", "lineno": 119}, {"nodeid": "tests/test_math_utils.py::test_import_error", "type": "Function", "lineno": 125}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "type": "Function", "lineno": 128}]}, {"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": 15}, {"nodeid": "tests/test_string_utils.py::test_warning_emit", "type": "Function", "lineno": 19}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_error", "type": "Function", "lineno": 23}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_surrogateescape", "type": "Function", "lineno": 27}, {"nodeid": "tests/test_string_utils.py::test_import_warning", "type": "Function", "lineno": 31}, {"nodeid": "tests/test_string_utils.py::test_xfail_uppercase_digits", "type": "Function", "lineno": 35}, {"nodeid": "tests/test_string_utils.py::test_keyboard_interrupt_direct", "type": "Function", "lineno": 40}]}, {"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": "ci-reports", "type": "Dir"}, {"nodeid": "functions", "type": "Package"}, {"nodeid": "tests", "type": "Dir"}]}], "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.0034769499907270074, "outcome": "passed"}, "call": {"duration": 0.00047294399701058865, "outcome": "passed"}, "teardown": {"duration": 0.0002514449879527092, "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.00047574902419000864, "outcome": "passed"}, "call": {"duration": 0.0003188850823789835, "outcome": "passed"}, "teardown": {"duration": 0.0001477039186283946, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_cause_io_error", "lineno": 22, "outcome": "failed", "keywords": ["test_cause_io_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011299096513539553, "outcome": "passed"}, "call": {"duration": 0.00018089194782078266, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/functions/io_utils.py", "lineno": 10, "message": "OSError: Forced IO Error for testing"}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 25, "message": ""}, {"path": "functions/io_utils.py", "lineno": 10, "message": "OSError"}], "longrepr": "def test_cause_io_error():\n # Raises manual IOError to simulate IO failure\n> cause_io_error()\n\ntests/test_io_utils.py:25: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\n def cause_io_error():\n> raise IOError(\"Forced IO Error for testing\")\nE OSError: Forced IO Error for testing\n\nfunctions/io_utils.py:10: OSError"}, "teardown": {"duration": 0.0001613039057701826, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_file_not_found", "lineno": 26, "outcome": "failed", "keywords": ["test_file_not_found", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012029102072119713, "outcome": "passed"}, "call": {"duration": 0.0001859969925135374, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/functions/io_utils.py", "lineno": 2, "message": "FileNotFoundError: [Errno 2] No such file or directory: 'nonexistent.file'"}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 29, "message": ""}, {"path": "functions/io_utils.py", "lineno": 2, "message": "FileNotFoundError"}], "longrepr": "def test_file_not_found():\n # Reading non-existing file raises FileNotFoundError\n> read_file(\"nonexistent.file\")\n\ntests/test_io_utils.py:29: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\npath = 'nonexistent.file'\n\n def read_file(path):\n> with open(path, \"r\", encoding=\"utf-8\") as f:\nE FileNotFoundError: [Errno 2] No such file or directory: 'nonexistent.file'\n\nfunctions/io_utils.py:2: FileNotFoundError"}, "teardown": {"duration": 0.00015317206270992756, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_permission_error", "lineno": 30, "outcome": "failed", "keywords": ["test_permission_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00021963007748126984, "outcome": "passed"}, "call": {"duration": 0.0001808319939300418, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_io_utils.py", "lineno": 34, "message": "PermissionError: Permission denied"}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 36, "message": ""}, {"path": "functions/io_utils.py", "lineno": 2, "message": "in read_file"}, {"path": "tests/test_io_utils.py", "lineno": 34, "message": "PermissionError"}], "longrepr": "monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f8c84fee550>\n\n def test_permission_error(monkeypatch):\n # Patch open to raise PermissionError simulating access denial\n def raise_perm_error(*args, **kwargs):\n raise PermissionError(\"Permission denied\")\n monkeypatch.setattr(\"builtins.open\", raise_perm_error)\n> read_file(\"anyfile.txt\")\n\ntests/test_io_utils.py:36: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nfunctions/io_utils.py:2: in read_file\n with open(path, \"r\", encoding=\"utf-8\") as f:\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nargs = ('anyfile.txt', 'r'), kwargs = {'encoding': 'utf-8'}\n\n def raise_perm_error(*args, **kwargs):\n> raise PermissionError(\"Permission denied\")\nE PermissionError: Permission denied\n\ntests/test_io_utils.py:34: PermissionError"}, "teardown": {"duration": 0.00017557304818183184, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_mock_open_error", "lineno": 37, "outcome": "failed", "keywords": ["test_mock_open_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00020388001576066017, "outcome": "passed"}, "call": {"duration": 0.003357263980433345, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/unittest/mock.py", "lineno": 1140, "message": "OSError: Mocked IOError"}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 43, "message": ""}, {"path": ".pixi/envs/default/lib/python3.8/unittest/mock.py", "lineno": 1081, "message": "in __call__"}, {"path": ".pixi/envs/default/lib/python3.8/unittest/mock.py", "lineno": 1085, "message": "in _mock_call"}, {"path": ".pixi/envs/default/lib/python3.8/unittest/mock.py", "lineno": 1140, "message": "OSError"}], "longrepr": "monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f8c854968b0>\n\n def test_mock_open_error(monkeypatch):\n # Mock open() to raise IOError simulating read error\n mocked_open = mock.mock_open()\n mocked_open.side_effect = IOError(\"Mocked IOError\")\n monkeypatch.setattr(\"builtins.open\", mocked_open)\n> with open(\"file.txt\", \"r\") as f:\n\ntests/test_io_utils.py:43: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.pixi/envs/default/lib/python3.8/unittest/mock.py:1081: in __call__\n return self._mock_call(*args, **kwargs)\n.pixi/envs/default/lib/python3.8/unittest/mock.py:1085: in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = \nargs = ('file.txt', 'r'), kwargs = {}, effect = OSError('Mocked IOError')\n\n def _execute_mock_call(self, /, *args, **kwargs):\n # separate from _increment_mock_call so that awaited functions are\n # executed separately from their call, also AsyncMock overrides this method\n \n effect = self.side_effect\n if effect is not None:\n if _is_exception(effect):\n> raise effect\nE OSError: Mocked IOError\n\n.pixi/envs/default/lib/python3.8/unittest/mock.py:1140: OSError"}, "teardown": {"duration": 0.00030400208197534084, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_file_handle_closed_error", "lineno": 45, "outcome": "failed", "keywords": ["test_file_handle_closed_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00014069897588342428, "outcome": "passed"}, "call": {"duration": 0.00018593005370348692, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_io_utils.py", "lineno": 50, "message": "ValueError: I/O operation on closed file"}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 50, "message": "ValueError"}], "longrepr": "def test_file_handle_closed_error():\n # Accessing closed file raises ValueError\n f = io.StringIO(\"content\")\n f.close()\n> f.read()\nE ValueError: I/O operation on closed file\n\ntests/test_io_utils.py:50: ValueError"}, "teardown": {"duration": 0.00018437393009662628, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_os_error", "lineno": 51, "outcome": "failed", "keywords": ["test_os_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002674639690667391, "outcome": "passed"}, "call": {"duration": 0.00018530595116317272, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_io_utils.py", "lineno": 55, "message": "OSError: Simulated OSError"}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 57, "message": ""}, {"path": "tests/test_io_utils.py", "lineno": 55, "message": "OSError"}], "longrepr": "monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f8c85152490>\n\n def test_os_error(monkeypatch):\n # Patch os.remove to raise OSError simulating filesystem error\n def raise_os_error(path):\n raise OSError(\"Simulated OSError\")\n monkeypatch.setattr(\"os.remove\", raise_os_error)\n> os.remove(\"file.txt\")\n\ntests/test_io_utils.py:57: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\npath = 'file.txt'\n\n def raise_os_error(path):\n> raise OSError(\"Simulated OSError\")\nE OSError: Simulated OSError\n\ntests/test_io_utils.py:55: OSError"}, "teardown": {"duration": 0.00018026900943368673, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_write_file_readonly", "lineno": 58, "outcome": "passed", "keywords": ["test_write_file_readonly", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0006195750320330262, "outcome": "passed"}, "call": {"duration": 0.0009607849642634392, "outcome": "passed"}, "teardown": {"duration": 0.0001365200150758028, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_file_not_found_error", "lineno": 66, "outcome": "failed", "keywords": ["test_file_not_found_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011534302029758692, "outcome": "passed"}, "call": {"duration": 0.0001643829746171832, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_io_utils.py", "lineno": 69, "message": "FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt'"}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 69, "message": "FileNotFoundError"}], "longrepr": "def test_file_not_found_error():\n # Raises FileNotFoundError when opening a non-existent file\n> open(\"no_such_file.txt\", \"r\")\nE FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt'\n\ntests/test_io_utils.py:69: FileNotFoundError"}, "teardown": {"duration": 0.00013826193753629923, "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.00012894801329821348, "outcome": "passed"}, "call": {"duration": 0.00015521596651524305, "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.00014869007281959057, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_call_missing_function", "lineno": 17, "outcome": "failed", "keywords": ["test_call_missing_function", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012153200805187225, "outcome": "passed"}, "call": {"duration": 0.00015123409684747458, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 20, "message": "AttributeError: module 'functions.math_utils' has no attribute 'non_existent_function'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 20, "message": "AttributeError"}], "longrepr": "def test_call_missing_function():\n # Accessing a missing function attribute raises AttributeError\n> getattr(math_utils, \"non_existent_function\")()\nE AttributeError: module 'functions.math_utils' has no attribute 'non_existent_function'\n\ntests/test_math_utils.py:20: AttributeError"}, "teardown": {"duration": 0.00013944297097623348, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[2-2-4]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[2-2-4]", "parametrize", "pytestmark", "2-2-4", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0003228920977562666, "outcome": "passed"}, "call": {"duration": 0.00014968507457524538, "outcome": "passed"}, "teardown": {"duration": 0.00014042691327631474, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[1-5-6]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[1-5-6]", "parametrize", "pytestmark", "1-5-6", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00025064009241759777, "outcome": "passed"}, "call": {"duration": 0.00012975302524864674, "outcome": "passed"}, "teardown": {"duration": 0.00013258797116577625, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-7]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[3-4-7]", "parametrize", "pytestmark", "3-4-7", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00025347701739519835, "outcome": "passed"}, "call": {"duration": 0.00013829907402396202, "outcome": "passed"}, "teardown": {"duration": 0.00013452500570565462, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-5-8]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[3-5-8]", "parametrize", "pytestmark", "3-5-8", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00024386809673160315, "outcome": "passed"}, "call": {"duration": 0.00012902903836220503, "outcome": "passed"}, "teardown": {"duration": 0.00013447098899632692, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-6-9]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[3-6-9]", "parametrize", "pytestmark", "3-6-9", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00024119694717228413, "outcome": "passed"}, "call": {"duration": 0.00012350990436971188, "outcome": "passed"}, "teardown": {"duration": 0.000129251042380929, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=2,b=2,expected=4]", "lineno": 36, "outcome": "passed", "keywords": ["test_addition_pass_id[a=2,b=2,expected=4]", "parametrize", "pytestmark", "a=2,b=2,expected=4", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.000235849991440773, "outcome": "passed"}, "call": {"duration": 0.00013311195652931929, "outcome": "passed"}, "teardown": {"duration": 0.00013245001900941133, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=1,b=5,expected=6]", "lineno": 36, "outcome": "passed", "keywords": ["test_addition_pass_id[a=1,b=5,expected=6]", "parametrize", "pytestmark", "a=1,b=5,expected=6", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002402580576017499, "outcome": "passed"}, "call": {"duration": 0.000123149948194623, "outcome": "passed"}, "teardown": {"duration": 0.00012678105849772692, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=3,b=4,expected=7]", "lineno": 36, "outcome": "passed", "keywords": ["test_addition_pass_id[a=3,b=4,expected=7]", "parametrize", "pytestmark", "a=3,b=4,expected=7", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002334710443392396, "outcome": "passed"}, "call": {"duration": 0.00012309092562645674, "outcome": "passed"}, "teardown": {"duration": 0.00013137306086719036, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "lineno": 48, "outcome": "failed", "keywords": ["test_addition_fail", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012341595720499754, "outcome": "passed"}, "call": {"duration": 0.0004376369761303067, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 51, "message": "assert 4 == 5\n + where 4 = addition(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 51, "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:51: AssertionError"}, "teardown": {"duration": 0.00013744202442467213, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "lineno": 52, "outcome": "failed", "keywords": ["test_division_zero", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011587492190301418, "outcome": "passed"}, "call": {"duration": 0.00016384304035454988, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/functions/math_utils.py", "lineno": 5, "message": "ZeroDivisionError: division by zero"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 55, "message": ""}, {"path": "functions/math_utils.py", "lineno": 5, "message": "ZeroDivisionError"}], "longrepr": "def test_division_zero():\n # Will raise ZeroDivisionError if not handled in division\n> division(1, 0)\n\ntests/test_math_utils.py:55: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\na = 1, b = 0\n\n def division(a, b):\n> return a / b\nE ZeroDivisionError: division by zero\n\nfunctions/math_utils.py:5: ZeroDivisionError"}, "teardown": {"duration": 0.00014052505139261484, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "lineno": 56, "outcome": "xfailed", "keywords": ["test_multiply_xfail", "xfail", "pytestmark", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00013683398719877005, "outcome": "passed"}, "call": {"duration": 0.00026702694594860077, "outcome": "skipped", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 60, "message": "assert 4 == 5\n + where 4 = multiply(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 60, "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:60: AssertionError"}, "teardown": {"duration": 0.0001426310045644641, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "lineno": 61, "outcome": "failed", "keywords": ["test_runtime_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011607096530497074, "outcome": "passed"}, "call": {"duration": 0.0001454079756513238, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 64, "message": "RuntimeError: Forced runtime error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 64, "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:64: RuntimeError"}, "teardown": {"duration": 0.00013999699149280787, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "lineno": 65, "outcome": "failed", "keywords": ["test_memory_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012049800716340542, "outcome": "passed"}, "call": {"duration": 0.00015628698747605085, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 68, "message": "MemoryError: Simulated memory error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 68, "message": "MemoryError"}], "longrepr": "def test_memory_error():\n # Manually raise MemoryError to simulate out-of-memory condition\n> raise MemoryError(\"Simulated memory error\")\nE MemoryError: Simulated memory error\n\ntests/test_math_utils.py:68: MemoryError"}, "teardown": {"duration": 0.00014967401511967182, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "lineno": 69, "outcome": "failed", "keywords": ["test_timeout_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011658994480967522, "outcome": "passed"}, "call": {"duration": 0.00015352503396570683, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 72, "message": "TimeoutError: Simulated timeout error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 72, "message": "TimeoutError"}], "longrepr": "def test_timeout_error():\n # Manually raise TimeoutError simulating timeout conditions\n> raise TimeoutError(\"Simulated timeout error\")\nE TimeoutError: Simulated timeout error\n\ntests/test_math_utils.py:72: TimeoutError"}, "teardown": {"duration": 0.00014371902216225863, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "lineno": 73, "outcome": "failed", "keywords": ["test_recursion_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011457107029855251, "outcome": "passed"}, "call": {"duration": 0.0008337449980899692, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 77, "message": "RecursionError: maximum recursion depth exceeded"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 78, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 77, "message": "in recursive"}, {"path": "tests/test_math_utils.py", "lineno": 77, "message": "in recursive"}], "longrepr": "def test_recursion_error():\n # Infinite recursion triggers RecursionError\n def recursive():\n return recursive()\n> recursive()\n\ntests/test_math_utils.py:78: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \ntests/test_math_utils.py:77: in recursive\n return recursive()\ntests/test_math_utils.py:77: in recursive\n return recursive()\nE RecursionError: maximum recursion depth exceeded\n!!! Recursion detected (same locals & position)"}, "teardown": {"duration": 0.00015925802290439606, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "lineno": 79, "outcome": "failed", "keywords": ["test_floating_point_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001275750109925866, "outcome": "passed"}, "call": {"duration": 0.0001523829996585846, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 82, "message": "FloatingPointError: Simulated floating point error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 82, "message": "FloatingPointError"}], "longrepr": "def test_floating_point_error():\n # Manually raise FloatingPointError\n> raise FloatingPointError(\"Simulated floating point error\")\nE FloatingPointError: Simulated floating point error\n\ntests/test_math_utils.py:82: FloatingPointError"}, "teardown": {"duration": 0.00014810694847255945, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "lineno": 83, "outcome": "failed", "keywords": ["test_floating_point_overflow", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011980801355093718, "outcome": "passed"}, "call": {"duration": 0.00015667499974370003, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 86, "message": "OverflowError: math range error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 86, "message": "OverflowError"}], "longrepr": "def test_floating_point_overflow():\n # Exponential overflow triggers OverflowError\n> math.exp(1000)\nE OverflowError: math range error\n\ntests/test_math_utils.py:86: OverflowError"}, "teardown": {"duration": 0.0001383880153298378, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_value_error", "lineno": 87, "outcome": "failed", "keywords": ["test_value_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00015356694348156452, "outcome": "passed"}, "call": {"duration": 0.0001557020004838705, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 90, "message": "ValueError: invalid literal for int() with base 10: 'invalid'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 90, "message": "ValueError"}], "longrepr": "def test_value_error():\n # ValueError on invalid integer conversion\n> int(\"invalid\")\nE ValueError: invalid literal for int() with base 10: 'invalid'\n\ntests/test_math_utils.py:90: ValueError"}, "teardown": {"duration": 0.00013684399891644716, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_wrong_argument_error", "lineno": 91, "outcome": "failed", "keywords": ["test_wrong_argument_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012820400297641754, "outcome": "passed"}, "call": {"duration": 0.00014959299005568027, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 94, "message": "TypeError: 'int' object is not iterable"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 94, "message": "TypeError"}], "longrepr": "def test_wrong_argument_error():\n # TypeError when passing wrong argument type to sum\n> sum(5)\nE TypeError: 'int' object is not iterable\n\ntests/test_math_utils.py:94: TypeError"}, "teardown": {"duration": 0.00014765397645533085, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "lineno": 95, "outcome": "failed", "keywords": ["test_unhandled_exception", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011809100396931171, "outcome": "passed"}, "call": {"duration": 0.00014853000175207853, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 98, "message": "Exception: Generic unhandled exception"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 98, "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:98: Exception"}, "teardown": {"duration": 0.00014820101205259562, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "lineno": 99, "outcome": "failed", "keywords": ["test_custom_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011913909111171961, "outcome": "passed"}, "call": {"duration": 0.00015300593804568052, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 102, "message": "test_math_utils.CustomError: Custom error simulation"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 102, "message": "CustomError"}], "longrepr": "def test_custom_error():\n # Raises user-defined CustomError exception\n> raise CustomError(\"Custom error simulation\")\nE test_math_utils.CustomError: Custom error simulation\n\ntests/test_math_utils.py:102: CustomError"}, "teardown": {"duration": 0.000140600954182446, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "lineno": 103, "outcome": "failed", "keywords": ["test_stop_iteration_direct", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011588505003601313, "outcome": "passed"}, "call": {"duration": 0.00015935709234327078, "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:106: StopIteration\n\nThe above exception was the direct cause of the following exception:\n\ncls = \nfunc = . at 0x7f8c8531a9d0>\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.00026710901875048876, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "lineno": 107, "outcome": "failed", "keywords": ["test_generator_exit_direct", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00014105497393757105, "outcome": "passed"}, "call": {"duration": 0.00018844602163881063, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 110, "message": "GeneratorExit"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 110, "message": "GeneratorExit"}], "longrepr": "def test_generator_exit_direct():\n # Directly raise GeneratorExit exception\n> raise GeneratorExit()\nE GeneratorExit\n\ntests/test_math_utils.py:110: GeneratorExit"}, "teardown": {"duration": 0.00018478697165846825, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "lineno": 111, "outcome": "failed", "keywords": ["test_malformed_code", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00013062707148492336, "outcome": "passed"}, "call": {"duration": 0.0001664709998294711, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 114, "message": " File \"\", line 1\n def bad(:\n ^\nSyntaxError: invalid syntax"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 114, "message": "SyntaxError"}], "longrepr": "def test_malformed_code():\n # SyntaxError when executing malformed Python code\n> exec(\"def bad(:\\n pass\")\nE File \"\", line 1\nE def bad(:\nE ^\nE SyntaxError: invalid syntax\n\ntests/test_math_utils.py:114: SyntaxError"}, "teardown": {"duration": 0.000140861957333982, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "lineno": 115, "outcome": "failed", "keywords": ["test_sys_exit", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00013600592501461506, "outcome": "passed"}, "call": {"duration": 0.00014923803973942995, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 118, "message": "SystemExit: 1"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 118, "message": "SystemExit"}], "longrepr": "def test_sys_exit():\n # Simulate SystemExit via sys.exit\n> sys.exit(1)\nE SystemExit: 1\n\ntests/test_math_utils.py:118: SystemExit"}, "teardown": {"duration": 0.00013922492507845163, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "lineno": 119, "outcome": "failed", "keywords": ["test_broken_function", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001176310470327735, "outcome": "passed"}, "call": {"duration": 0.00015258602797985077, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 123, "message": "TypeError: Broken function"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 124, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 123, "message": "TypeError"}], "longrepr": "def test_broken_function():\n # Simulate broken function raising TypeError\n def broken_func(*args, **kwargs):\n raise TypeError(\"Broken function\")\n> broken_func()\n\ntests/test_math_utils.py:124: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nargs = (), kwargs = {}\n\n def broken_func(*args, **kwargs):\n> raise TypeError(\"Broken function\")\nE TypeError: Broken function\n\ntests/test_math_utils.py:123: TypeError"}, "teardown": {"duration": 0.00015550502575933933, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_import_error", "lineno": 125, "outcome": "failed", "keywords": ["test_import_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00016691198106855154, "outcome": "passed"}, "call": {"duration": 0.00020212004892528057, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 127, "message": "ImportError: Simulated ImportError"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 127, "message": "ImportError"}], "longrepr": "def test_import_error():\n> raise ImportError(\"Simulated ImportError\")\nE ImportError: Simulated ImportError\n\ntests/test_math_utils.py:127: ImportError"}, "teardown": {"duration": 0.00015186495147645473, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "lineno": 128, "outcome": "failed", "keywords": ["test_module_not_found_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00013491499703377485, "outcome": "passed"}, "call": {"duration": 0.0005101009737700224, "outcome": "failed", "crash": {"path": "", "lineno": 973, "message": "ModuleNotFoundError: No module named 'non_existent_module_xyz'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 131, "message": ""}, {"path": ".pixi/envs/default/lib/python3.8/importlib/__init__.py", "lineno": 127, "message": "in import_module"}, {"path": "", "lineno": 1014, "message": "in _gcd_import"}, {"path": "", "lineno": 991, "message": "in _find_and_load"}, {"path": "", "lineno": 973, "message": "ModuleNotFoundError"}], "longrepr": "def test_module_not_found_error():\n # Raises ModuleNotFoundError (subclass of ImportError) for missing module\n> importlib.import_module(\"non_existent_module_xyz\")\n\ntests/test_math_utils.py:131: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\n:1014: in _gcd_import\n ???\n:991: in _find_and_load\n ???\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nname = 'non_existent_module_xyz'\nimport_ = \n\n> ???\nE ModuleNotFoundError: No module named 'non_existent_module_xyz'\n\n:973: ModuleNotFoundError"}, "teardown": {"duration": 0.00017512007616460323, "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.00014300004113465548, "outcome": "passed"}, "call": {"duration": 0.00016698800027370453, "outcome": "passed"}, "teardown": {"duration": 0.00010394398123025894, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_uppercase_type_error", "lineno": 11, "outcome": "failed", "keywords": ["test_uppercase_type_error", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001072160666808486, "outcome": "passed"}, "call": {"duration": 0.00014499493408948183, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/functions/string_utils.py", "lineno": 3, "message": "TypeError: Input cannot be None"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 14, "message": ""}, {"path": "functions/string_utils.py", "lineno": 3, "message": "TypeError"}], "longrepr": "def test_uppercase_type_error():\n # TypeError when input is None (invalid input)\n> uppercase(None)\n\ntests/test_string_utils.py:14: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\ns = None\n\n def uppercase(s):\n if s is None:\n> raise TypeError(\"Input cannot be None\")\nE TypeError: Input cannot be None\n\nfunctions/string_utils.py:3: TypeError"}, "teardown": {"duration": 0.00014362495858222246, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_reverse_string", "lineno": 15, "outcome": "passed", "keywords": ["test_reverse_string", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001332879764959216, "outcome": "passed"}, "call": {"duration": 0.00014428701251745224, "outcome": "passed"}, "teardown": {"duration": 0.00010650698095560074, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_warning_emit", "lineno": 19, "outcome": "passed", "keywords": ["test_warning_emit", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00010489101987332106, "outcome": "passed"}, "call": {"duration": 0.0001473430311307311, "outcome": "passed"}, "teardown": {"duration": 9.490700904279947e-05, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_error", "lineno": 23, "outcome": "failed", "keywords": ["test_unicode_decode_error", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011253403499722481, "outcome": "passed"}, "call": {"duration": 0.00015926803462207317, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 26, "message": "UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 26, "message": "UnicodeDecodeError"}], "longrepr": "def test_unicode_decode_error():\n # UnicodeDecodeError when decoding invalid byte sequence\n> b'\\xff'.decode('utf-8')\nE UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte\n\ntests/test_string_utils.py:26: UnicodeDecodeError"}, "teardown": {"duration": 0.00014921592082828283, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_surrogateescape", "lineno": 27, "outcome": "failed", "keywords": ["test_unicode_decode_surrogateescape", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011629203800112009, "outcome": "passed"}, "call": {"duration": 0.00015977805014699697, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 30, "message": "UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 30, "message": "UnicodeDecodeError"}], "longrepr": "def test_unicode_decode_surrogateescape():\n # UnicodeDecodeError with strict error handler on invalid byte\n> b\"\\x80\".decode(\"utf-8\", errors=\"strict\")\nE UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte\n\ntests/test_string_utils.py:30: UnicodeDecodeError"}, "teardown": {"duration": 0.00013570301234722137, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_import_warning", "lineno": 31, "outcome": "passed", "keywords": ["test_import_warning", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011565408203750849, "outcome": "passed"}, "call": {"duration": 0.0001411329722031951, "outcome": "passed"}, "teardown": {"duration": 0.00010227004531770945, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_xfail_uppercase_digits", "lineno": 35, "outcome": "xfailed", "keywords": ["test_xfail_uppercase_digits", "xfail", "pytestmark", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011509796604514122, "outcome": "passed"}, "call": {"duration": 0.0006145689403638244, "outcome": "skipped", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 39, "message": "AssertionError: assert 'ABC123' == 'ABC1234'\n \n - ABC1234\n ? -\n + ABC123"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 39, "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:39: AssertionError"}, "teardown": {"duration": 0.00013657810632139444, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_keyboard_interrupt_direct", "lineno": 40, "outcome": "passed", "keywords": ["test_keyboard_interrupt_direct", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011789100244641304, "outcome": "passed"}}], "warnings": [{"message": "Test warning", "category": "UserWarning", "when": "runtest", "filename": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 22}]} \ No newline at end of file +{"created": 1752665307.6458447, "duration": 0.75913405418396, "exitcode": 2, "root": "/workspace/tligui_y/slic", "environment": {}, "summary": {"passed": 16, "failed": 31, "xfailed": 2, "total": 49, "collected": 49}, "collectors": [{"nodeid": "", "outcome": "passed", "result": [{"nodeid": ".", "type": "Dir"}]}, {"nodeid": "ci-reports/allure/data", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/export", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/history", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/plugin/behaviors", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/plugin/packages", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/plugin/screen-diff", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/plugin", "outcome": "passed", "result": [{"nodeid": "ci-reports/allure/plugin/behaviors", "type": "Dir"}, {"nodeid": "ci-reports/allure/plugin/packages", "type": "Dir"}, {"nodeid": "ci-reports/allure/plugin/screen-diff", "type": "Dir"}]}, {"nodeid": "ci-reports/allure/widgets", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure", "outcome": "passed", "result": [{"nodeid": "ci-reports/allure/data", "type": "Dir"}, {"nodeid": "ci-reports/allure/export", "type": "Dir"}, {"nodeid": "ci-reports/allure/history", "type": "Dir"}, {"nodeid": "ci-reports/allure/plugin", "type": "Dir"}, {"nodeid": "ci-reports/allure/widgets", "type": "Dir"}]}, {"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": "failed", "result": [], "longrepr": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/python.py:493: in importtestmodule\n mod = import_path(\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/pathlib.py:587: in import_path\n importlib.import_module(module_name)\n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\n:1014: in _gcd_import\n ???\n:991: in _find_and_load\n ???\n:975: in _find_and_load_unlocked\n ???\n:671: in _load_unlocked\n ???\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rewrite.py:175: in exec_module\n source_stat, co = _rewrite_test(fn, self.config)\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rewrite.py:355: in _rewrite_test\n tree = ast.parse(source, filename=strfn)\n.pixi/envs/default/lib/python3.8/ast.py:47: in parse\n return compile(source, filename, mode, flags,\nE File \"/workspace/tligui_y/slic/tests/test_broken_fct.py\", line 8\nE def test_valid_2():\nE ^\nE SyntaxError: invalid syntax"}, {"nodeid": "tests/test_collector_error.py", "outcome": "failed", "result": [], "longrepr": "ImportError while importing test module '/workspace/tligui_y/slic/tests/test_collector_error.py'.\nHint: make sure your test modules/packages have valid Python names.\nTraceback:\n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\ntests/test_collector_error.py:1: in \n from no_existing_module.math_utils import *\nE ModuleNotFoundError: No module named 'no_existing_module'"}, {"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": 26}, {"nodeid": "tests/test_io_utils.py::test_permission_error", "type": "Function", "lineno": 30}, {"nodeid": "tests/test_io_utils.py::test_mock_open_error", "type": "Function", "lineno": 37}, {"nodeid": "tests/test_io_utils.py::test_file_handle_closed_error", "type": "Function", "lineno": 45}, {"nodeid": "tests/test_io_utils.py::test_os_error", "type": "Function", "lineno": 51}, {"nodeid": "tests/test_io_utils.py::test_write_file_readonly", "type": "Function", "lineno": 58}, {"nodeid": "tests/test_io_utils.py::test_file_not_found_error", "type": "Function", "lineno": 66}]}, {"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[2-2-4]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[1-5-6]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-7]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-5-8]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-6-9]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=2,b=2,expected=4]", "type": "Function", "lineno": 36}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=1,b=5,expected=6]", "type": "Function", "lineno": 36}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=3,b=4,expected=7]", "type": "Function", "lineno": 36}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "type": "Function", "lineno": 48}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "type": "Function", "lineno": 52}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "type": "Function", "lineno": 56}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "type": "Function", "lineno": 61}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "type": "Function", "lineno": 65}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "type": "Function", "lineno": 69}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "type": "Function", "lineno": 73}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "type": "Function", "lineno": 79}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "type": "Function", "lineno": 83}, {"nodeid": "tests/test_math_utils.py::test_value_error", "type": "Function", "lineno": 87}, {"nodeid": "tests/test_math_utils.py::test_wrong_argument_error", "type": "Function", "lineno": 91}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "type": "Function", "lineno": 95}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "type": "Function", "lineno": 99}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "type": "Function", "lineno": 103}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "type": "Function", "lineno": 107}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "type": "Function", "lineno": 111}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "type": "Function", "lineno": 115}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "type": "Function", "lineno": 119}, {"nodeid": "tests/test_math_utils.py::test_import_error", "type": "Function", "lineno": 125}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "type": "Function", "lineno": 128}]}, {"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": 15}, {"nodeid": "tests/test_string_utils.py::test_warning_emit", "type": "Function", "lineno": 19}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_error", "type": "Function", "lineno": 23}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_surrogateescape", "type": "Function", "lineno": 27}, {"nodeid": "tests/test_string_utils.py::test_import_warning", "type": "Function", "lineno": 31}, {"nodeid": "tests/test_string_utils.py::test_xfail_uppercase_digits", "type": "Function", "lineno": 35}, {"nodeid": "tests/test_string_utils.py::test_keyboard_interrupt_direct", "type": "Function", "lineno": 40}]}, {"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": "ci-reports", "type": "Dir"}, {"nodeid": "functions", "type": "Package"}, {"nodeid": "tests", "type": "Dir"}]}], "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.003519034944474697, "outcome": "passed"}, "call": {"duration": 0.0004578919615596533, "outcome": "passed"}, "teardown": {"duration": 0.00027404294814914465, "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.0004969410365447402, "outcome": "passed"}, "call": {"duration": 0.0002863170811906457, "outcome": "passed"}, "teardown": {"duration": 0.00014169898349791765, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_cause_io_error", "lineno": 22, "outcome": "failed", "keywords": ["test_cause_io_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011287699453532696, "outcome": "passed"}, "call": {"duration": 0.00015965593047440052, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/functions/io_utils.py", "lineno": 10, "message": "OSError: Forced IO Error for testing"}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 25, "message": ""}, {"path": "functions/io_utils.py", "lineno": 10, "message": "OSError"}], "longrepr": "def test_cause_io_error():\n # Raises manual IOError to simulate IO failure\n> cause_io_error()\n\ntests/test_io_utils.py:25: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\n def cause_io_error():\n> raise IOError(\"Forced IO Error for testing\")\nE OSError: Forced IO Error for testing\n\nfunctions/io_utils.py:10: OSError"}, "teardown": {"duration": 0.00014494697097688913, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_file_not_found", "lineno": 26, "outcome": "failed", "keywords": ["test_file_not_found", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012540107127279043, "outcome": "passed"}, "call": {"duration": 0.00018100510351359844, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/functions/io_utils.py", "lineno": 2, "message": "FileNotFoundError: [Errno 2] No such file or directory: 'nonexistent.file'"}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 29, "message": ""}, {"path": "functions/io_utils.py", "lineno": 2, "message": "FileNotFoundError"}], "longrepr": "def test_file_not_found():\n # Reading non-existing file raises FileNotFoundError\n> read_file(\"nonexistent.file\")\n\ntests/test_io_utils.py:29: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\npath = 'nonexistent.file'\n\n def read_file(path):\n> with open(path, \"r\", encoding=\"utf-8\") as f:\nE FileNotFoundError: [Errno 2] No such file or directory: 'nonexistent.file'\n\nfunctions/io_utils.py:2: FileNotFoundError"}, "teardown": {"duration": 0.000137386959977448, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_permission_error", "lineno": 30, "outcome": "failed", "keywords": ["test_permission_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002257989253848791, "outcome": "passed"}, "call": {"duration": 0.00018001499120146036, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_io_utils.py", "lineno": 34, "message": "PermissionError: Permission denied"}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 36, "message": ""}, {"path": "functions/io_utils.py", "lineno": 2, "message": "in read_file"}, {"path": "tests/test_io_utils.py", "lineno": 34, "message": "PermissionError"}], "longrepr": "monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0db85d3460>\n\n def test_permission_error(monkeypatch):\n # Patch open to raise PermissionError simulating access denial\n def raise_perm_error(*args, **kwargs):\n raise PermissionError(\"Permission denied\")\n monkeypatch.setattr(\"builtins.open\", raise_perm_error)\n> read_file(\"anyfile.txt\")\n\ntests/test_io_utils.py:36: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nfunctions/io_utils.py:2: in read_file\n with open(path, \"r\", encoding=\"utf-8\") as f:\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nargs = ('anyfile.txt', 'r'), kwargs = {'encoding': 'utf-8'}\n\n def raise_perm_error(*args, **kwargs):\n> raise PermissionError(\"Permission denied\")\nE PermissionError: Permission denied\n\ntests/test_io_utils.py:34: PermissionError"}, "teardown": {"duration": 0.00017847190611064434, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_mock_open_error", "lineno": 37, "outcome": "failed", "keywords": ["test_mock_open_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002220420865342021, "outcome": "passed"}, "call": {"duration": 0.003379918052814901, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/unittest/mock.py", "lineno": 1140, "message": "OSError: Mocked IOError"}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 43, "message": ""}, {"path": ".pixi/envs/default/lib/python3.8/unittest/mock.py", "lineno": 1081, "message": "in __call__"}, {"path": ".pixi/envs/default/lib/python3.8/unittest/mock.py", "lineno": 1085, "message": "in _mock_call"}, {"path": ".pixi/envs/default/lib/python3.8/unittest/mock.py", "lineno": 1140, "message": "OSError"}], "longrepr": "monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0db7c0b8e0>\n\n def test_mock_open_error(monkeypatch):\n # Mock open() to raise IOError simulating read error\n mocked_open = mock.mock_open()\n mocked_open.side_effect = IOError(\"Mocked IOError\")\n monkeypatch.setattr(\"builtins.open\", mocked_open)\n> with open(\"file.txt\", \"r\") as f:\n\ntests/test_io_utils.py:43: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.pixi/envs/default/lib/python3.8/unittest/mock.py:1081: in __call__\n return self._mock_call(*args, **kwargs)\n.pixi/envs/default/lib/python3.8/unittest/mock.py:1085: in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = \nargs = ('file.txt', 'r'), kwargs = {}, effect = OSError('Mocked IOError')\n\n def _execute_mock_call(self, /, *args, **kwargs):\n # separate from _increment_mock_call so that awaited functions are\n # executed separately from their call, also AsyncMock overrides this method\n \n effect = self.side_effect\n if effect is not None:\n if _is_exception(effect):\n> raise effect\nE OSError: Mocked IOError\n\n.pixi/envs/default/lib/python3.8/unittest/mock.py:1140: OSError"}, "teardown": {"duration": 0.0003183989319950342, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_file_handle_closed_error", "lineno": 45, "outcome": "failed", "keywords": ["test_file_handle_closed_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00014771195128560066, "outcome": "passed"}, "call": {"duration": 0.00021521199960261583, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_io_utils.py", "lineno": 50, "message": "ValueError: I/O operation on closed file"}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 50, "message": "ValueError"}], "longrepr": "def test_file_handle_closed_error():\n # Accessing closed file raises ValueError\n f = io.StringIO(\"content\")\n f.close()\n> f.read()\nE ValueError: I/O operation on closed file\n\ntests/test_io_utils.py:50: ValueError"}, "teardown": {"duration": 0.00024127995129674673, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_os_error", "lineno": 51, "outcome": "failed", "keywords": ["test_os_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.000274940044619143, "outcome": "passed"}, "call": {"duration": 0.00021898397244513035, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_io_utils.py", "lineno": 55, "message": "OSError: Simulated OSError"}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 57, "message": ""}, {"path": "tests/test_io_utils.py", "lineno": 55, "message": "OSError"}], "longrepr": "monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0db7e6adf0>\n\n def test_os_error(monkeypatch):\n # Patch os.remove to raise OSError simulating filesystem error\n def raise_os_error(path):\n raise OSError(\"Simulated OSError\")\n monkeypatch.setattr(\"os.remove\", raise_os_error)\n> os.remove(\"file.txt\")\n\ntests/test_io_utils.py:57: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\npath = 'file.txt'\n\n def raise_os_error(path):\n> raise OSError(\"Simulated OSError\")\nE OSError: Simulated OSError\n\ntests/test_io_utils.py:55: OSError"}, "teardown": {"duration": 0.00021282397210597992, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_write_file_readonly", "lineno": 58, "outcome": "passed", "keywords": ["test_write_file_readonly", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0007261839928105474, "outcome": "passed"}, "call": {"duration": 0.0009029629873111844, "outcome": "passed"}, "teardown": {"duration": 0.00015958398580551147, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_file_not_found_error", "lineno": 66, "outcome": "failed", "keywords": ["test_file_not_found_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00013846997171640396, "outcome": "passed"}, "call": {"duration": 0.00017680798191577196, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_io_utils.py", "lineno": 69, "message": "FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt'"}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 69, "message": "FileNotFoundError"}], "longrepr": "def test_file_not_found_error():\n # Raises FileNotFoundError when opening a non-existent file\n> open(\"no_such_file.txt\", \"r\")\nE FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt'\n\ntests/test_io_utils.py:69: FileNotFoundError"}, "teardown": {"duration": 0.0001557719660922885, "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.00012939400039613247, "outcome": "passed"}, "call": {"duration": 0.00017559307161718607, "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.00013757101260125637, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_call_missing_function", "lineno": 17, "outcome": "failed", "keywords": ["test_call_missing_function", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.000119043979793787, "outcome": "passed"}, "call": {"duration": 0.0001510699512436986, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 20, "message": "AttributeError: module 'functions.math_utils' has no attribute 'non_existent_function'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 20, "message": "AttributeError"}], "longrepr": "def test_call_missing_function():\n # Accessing a missing function attribute raises AttributeError\n> getattr(math_utils, \"non_existent_function\")()\nE AttributeError: module 'functions.math_utils' has no attribute 'non_existent_function'\n\ntests/test_math_utils.py:20: AttributeError"}, "teardown": {"duration": 0.00013786298222839832, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[2-2-4]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[2-2-4]", "parametrize", "pytestmark", "2-2-4", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0003262300742790103, "outcome": "passed"}, "call": {"duration": 0.00014390796422958374, "outcome": "passed"}, "teardown": {"duration": 0.00014063192065805197, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[1-5-6]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[1-5-6]", "parametrize", "pytestmark", "1-5-6", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002630489179864526, "outcome": "passed"}, "call": {"duration": 0.00013359496369957924, "outcome": "passed"}, "teardown": {"duration": 0.00013252405915409327, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-7]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[3-4-7]", "parametrize", "pytestmark", "3-4-7", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002541639842092991, "outcome": "passed"}, "call": {"duration": 0.00012574996799230576, "outcome": "passed"}, "teardown": {"duration": 0.00013214396312832832, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-5-8]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[3-5-8]", "parametrize", "pytestmark", "3-5-8", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00025280797854065895, "outcome": "passed"}, "call": {"duration": 0.00012576999142766, "outcome": "passed"}, "teardown": {"duration": 0.0001280080759897828, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-6-9]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[3-6-9]", "parametrize", "pytestmark", "3-6-9", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002490709302946925, "outcome": "passed"}, "call": {"duration": 0.00012148392852395773, "outcome": "passed"}, "teardown": {"duration": 0.0001270559150725603, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=2,b=2,expected=4]", "lineno": 36, "outcome": "passed", "keywords": ["test_addition_pass_id[a=2,b=2,expected=4]", "parametrize", "pytestmark", "a=2,b=2,expected=4", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00025460205506533384, "outcome": "passed"}, "call": {"duration": 0.00012710702139884233, "outcome": "passed"}, "teardown": {"duration": 0.00013038096949458122, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=1,b=5,expected=6]", "lineno": 36, "outcome": "passed", "keywords": ["test_addition_pass_id[a=1,b=5,expected=6]", "parametrize", "pytestmark", "a=1,b=5,expected=6", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00024689396377652884, "outcome": "passed"}, "call": {"duration": 0.0001224930165335536, "outcome": "passed"}, "teardown": {"duration": 0.0001422489294782281, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=3,b=4,expected=7]", "lineno": 36, "outcome": "passed", "keywords": ["test_addition_pass_id[a=3,b=4,expected=7]", "parametrize", "pytestmark", "a=3,b=4,expected=7", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00025648402515798807, "outcome": "passed"}, "call": {"duration": 0.00012656894978135824, "outcome": "passed"}, "teardown": {"duration": 0.00012920796871185303, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "lineno": 48, "outcome": "failed", "keywords": ["test_addition_fail", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001011720160022378, "outcome": "passed"}, "call": {"duration": 0.0004662580322474241, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 51, "message": "assert 4 == 5\n + where 4 = addition(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 51, "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:51: AssertionError"}, "teardown": {"duration": 0.00013867393136024475, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "lineno": 52, "outcome": "failed", "keywords": ["test_division_zero", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001165029825642705, "outcome": "passed"}, "call": {"duration": 0.00015640503261238337, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/functions/math_utils.py", "lineno": 5, "message": "ZeroDivisionError: division by zero"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 55, "message": ""}, {"path": "functions/math_utils.py", "lineno": 5, "message": "ZeroDivisionError"}], "longrepr": "def test_division_zero():\n # Will raise ZeroDivisionError if not handled in division\n> division(1, 0)\n\ntests/test_math_utils.py:55: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\na = 1, b = 0\n\n def division(a, b):\n> return a / b\nE ZeroDivisionError: division by zero\n\nfunctions/math_utils.py:5: ZeroDivisionError"}, "teardown": {"duration": 0.0001372910337522626, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "lineno": 56, "outcome": "xfailed", "keywords": ["test_multiply_xfail", "xfail", "pytestmark", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00014673604164272547, "outcome": "passed"}, "call": {"duration": 0.00027240999042987823, "outcome": "skipped", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 60, "message": "assert 4 == 5\n + where 4 = multiply(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 60, "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:60: AssertionError"}, "teardown": {"duration": 0.0001355850836262107, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "lineno": 61, "outcome": "failed", "keywords": ["test_runtime_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001181289553642273, "outcome": "passed"}, "call": {"duration": 0.0001598019152879715, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 64, "message": "RuntimeError: Forced runtime error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 64, "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:64: RuntimeError"}, "teardown": {"duration": 0.00013109308201819658, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "lineno": 65, "outcome": "failed", "keywords": ["test_memory_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001173289492726326, "outcome": "passed"}, "call": {"duration": 0.00014812604058533907, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 68, "message": "MemoryError: Simulated memory error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 68, "message": "MemoryError"}], "longrepr": "def test_memory_error():\n # Manually raise MemoryError to simulate out-of-memory condition\n> raise MemoryError(\"Simulated memory error\")\nE MemoryError: Simulated memory error\n\ntests/test_math_utils.py:68: MemoryError"}, "teardown": {"duration": 0.00013674399815499783, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "lineno": 69, "outcome": "failed", "keywords": ["test_timeout_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011517398525029421, "outcome": "passed"}, "call": {"duration": 0.00014715595170855522, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 72, "message": "TimeoutError: Simulated timeout error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 72, "message": "TimeoutError"}], "longrepr": "def test_timeout_error():\n # Manually raise TimeoutError simulating timeout conditions\n> raise TimeoutError(\"Simulated timeout error\")\nE TimeoutError: Simulated timeout error\n\ntests/test_math_utils.py:72: TimeoutError"}, "teardown": {"duration": 0.00013202405534684658, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "lineno": 73, "outcome": "failed", "keywords": ["test_recursion_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012038892600685358, "outcome": "passed"}, "call": {"duration": 0.0007694610394537449, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 77, "message": "RecursionError: maximum recursion depth exceeded"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 78, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 77, "message": "in recursive"}, {"path": "tests/test_math_utils.py", "lineno": 77, "message": "in recursive"}], "longrepr": "def test_recursion_error():\n # Infinite recursion triggers RecursionError\n def recursive():\n return recursive()\n> recursive()\n\ntests/test_math_utils.py:78: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \ntests/test_math_utils.py:77: in recursive\n return recursive()\ntests/test_math_utils.py:77: in recursive\n return recursive()\nE RecursionError: maximum recursion depth exceeded\n!!! Recursion detected (same locals & position)"}, "teardown": {"duration": 0.00013668497558683157, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "lineno": 79, "outcome": "failed", "keywords": ["test_floating_point_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011509202886372805, "outcome": "passed"}, "call": {"duration": 0.00015865499153733253, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 82, "message": "FloatingPointError: Simulated floating point error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 82, "message": "FloatingPointError"}], "longrepr": "def test_floating_point_error():\n # Manually raise FloatingPointError\n> raise FloatingPointError(\"Simulated floating point error\")\nE FloatingPointError: Simulated floating point error\n\ntests/test_math_utils.py:82: FloatingPointError"}, "teardown": {"duration": 0.00013310008216649294, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "lineno": 83, "outcome": "failed", "keywords": ["test_floating_point_overflow", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011614803224802017, "outcome": "passed"}, "call": {"duration": 0.00015314901247620583, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 86, "message": "OverflowError: math range error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 86, "message": "OverflowError"}], "longrepr": "def test_floating_point_overflow():\n # Exponential overflow triggers OverflowError\n> math.exp(1000)\nE OverflowError: math range error\n\ntests/test_math_utils.py:86: OverflowError"}, "teardown": {"duration": 0.00013554503675550222, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_value_error", "lineno": 87, "outcome": "failed", "keywords": ["test_value_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011774105951189995, "outcome": "passed"}, "call": {"duration": 0.00015810609329491854, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 90, "message": "ValueError: invalid literal for int() with base 10: 'invalid'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 90, "message": "ValueError"}], "longrepr": "def test_value_error():\n # ValueError on invalid integer conversion\n> int(\"invalid\")\nE ValueError: invalid literal for int() with base 10: 'invalid'\n\ntests/test_math_utils.py:90: ValueError"}, "teardown": {"duration": 0.00013520405627787113, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_wrong_argument_error", "lineno": 91, "outcome": "failed", "keywords": ["test_wrong_argument_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012709293514490128, "outcome": "passed"}, "call": {"duration": 0.000151293003000319, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 94, "message": "TypeError: 'int' object is not iterable"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 94, "message": "TypeError"}], "longrepr": "def test_wrong_argument_error():\n # TypeError when passing wrong argument type to sum\n> sum(5)\nE TypeError: 'int' object is not iterable\n\ntests/test_math_utils.py:94: TypeError"}, "teardown": {"duration": 0.00014412403106689453, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "lineno": 95, "outcome": "failed", "keywords": ["test_unhandled_exception", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011704093776643276, "outcome": "passed"}, "call": {"duration": 0.00015748105943202972, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 98, "message": "Exception: Generic unhandled exception"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 98, "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:98: Exception"}, "teardown": {"duration": 0.00013320997823029757, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "lineno": 99, "outcome": "failed", "keywords": ["test_custom_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011997099500149488, "outcome": "passed"}, "call": {"duration": 0.0001519309589639306, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 102, "message": "test_math_utils.CustomError: Custom error simulation"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 102, "message": "CustomError"}], "longrepr": "def test_custom_error():\n # Raises user-defined CustomError exception\n> raise CustomError(\"Custom error simulation\")\nE test_math_utils.CustomError: Custom error simulation\n\ntests/test_math_utils.py:102: CustomError"}, "teardown": {"duration": 0.00013642897829413414, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "lineno": 103, "outcome": "failed", "keywords": ["test_stop_iteration_direct", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011576898396015167, "outcome": "passed"}, "call": {"duration": 0.00015537790022790432, "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:106: StopIteration\n\nThe above exception was the direct cause of the following exception:\n\ncls = \nfunc = . at 0x7f0db841e4c0>\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.0002677320735529065, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "lineno": 107, "outcome": "failed", "keywords": ["test_generator_exit_direct", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001417449675500393, "outcome": "passed"}, "call": {"duration": 0.00017248094081878662, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 110, "message": "GeneratorExit"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 110, "message": "GeneratorExit"}], "longrepr": "def test_generator_exit_direct():\n # Directly raise GeneratorExit exception\n> raise GeneratorExit()\nE GeneratorExit\n\ntests/test_math_utils.py:110: GeneratorExit"}, "teardown": {"duration": 0.00016654492355883121, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "lineno": 111, "outcome": "failed", "keywords": ["test_malformed_code", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012392201460897923, "outcome": "passed"}, "call": {"duration": 0.00017078802920877934, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 114, "message": " File \"\", line 1\n def bad(:\n ^\nSyntaxError: invalid syntax"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 114, "message": "SyntaxError"}], "longrepr": "def test_malformed_code():\n # SyntaxError when executing malformed Python code\n> exec(\"def bad(:\\n pass\")\nE File \"\", line 1\nE def bad(:\nE ^\nE SyntaxError: invalid syntax\n\ntests/test_math_utils.py:114: SyntaxError"}, "teardown": {"duration": 0.00015127402730286121, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "lineno": 115, "outcome": "failed", "keywords": ["test_sys_exit", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001187219750136137, "outcome": "passed"}, "call": {"duration": 0.00015819701366126537, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 118, "message": "SystemExit: 1"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 118, "message": "SystemExit"}], "longrepr": "def test_sys_exit():\n # Simulate SystemExit via sys.exit\n> sys.exit(1)\nE SystemExit: 1\n\ntests/test_math_utils.py:118: SystemExit"}, "teardown": {"duration": 0.00013676297385245562, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "lineno": 119, "outcome": "failed", "keywords": ["test_broken_function", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012654298916459084, "outcome": "passed"}, "call": {"duration": 0.0001669420162215829, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 123, "message": "TypeError: Broken function"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 124, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 123, "message": "TypeError"}], "longrepr": "def test_broken_function():\n # Simulate broken function raising TypeError\n def broken_func(*args, **kwargs):\n raise TypeError(\"Broken function\")\n> broken_func()\n\ntests/test_math_utils.py:124: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nargs = (), kwargs = {}\n\n def broken_func(*args, **kwargs):\n> raise TypeError(\"Broken function\")\nE TypeError: Broken function\n\ntests/test_math_utils.py:123: TypeError"}, "teardown": {"duration": 0.0001369150122627616, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_import_error", "lineno": 125, "outcome": "failed", "keywords": ["test_import_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001182629493996501, "outcome": "passed"}, "call": {"duration": 0.000159613904543221, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 127, "message": "ImportError: Simulated ImportError"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 127, "message": "ImportError"}], "longrepr": "def test_import_error():\n> raise ImportError(\"Simulated ImportError\")\nE ImportError: Simulated ImportError\n\ntests/test_math_utils.py:127: ImportError"}, "teardown": {"duration": 0.0001364400377497077, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "lineno": 128, "outcome": "failed", "keywords": ["test_module_not_found_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011761998757719994, "outcome": "passed"}, "call": {"duration": 0.00047670502681285143, "outcome": "failed", "crash": {"path": "", "lineno": 973, "message": "ModuleNotFoundError: No module named 'non_existent_module_xyz'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 131, "message": ""}, {"path": ".pixi/envs/default/lib/python3.8/importlib/__init__.py", "lineno": 127, "message": "in import_module"}, {"path": "", "lineno": 1014, "message": "in _gcd_import"}, {"path": "", "lineno": 991, "message": "in _find_and_load"}, {"path": "", "lineno": 973, "message": "ModuleNotFoundError"}], "longrepr": "def test_module_not_found_error():\n # Raises ModuleNotFoundError (subclass of ImportError) for missing module\n> importlib.import_module(\"non_existent_module_xyz\")\n\ntests/test_math_utils.py:131: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\n:1014: in _gcd_import\n ???\n:991: in _find_and_load\n ???\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nname = 'non_existent_module_xyz'\nimport_ = \n\n> ???\nE ModuleNotFoundError: No module named 'non_existent_module_xyz'\n\n:973: ModuleNotFoundError"}, "teardown": {"duration": 0.00018405495211482048, "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.00016108795534819365, "outcome": "passed"}, "call": {"duration": 0.0001583929406479001, "outcome": "passed"}, "teardown": {"duration": 0.00010466203093528748, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_uppercase_type_error", "lineno": 11, "outcome": "failed", "keywords": ["test_uppercase_type_error", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011343008372932673, "outcome": "passed"}, "call": {"duration": 0.00014667189680039883, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/functions/string_utils.py", "lineno": 3, "message": "TypeError: Input cannot be None"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 14, "message": ""}, {"path": "functions/string_utils.py", "lineno": 3, "message": "TypeError"}], "longrepr": "def test_uppercase_type_error():\n # TypeError when input is None (invalid input)\n> uppercase(None)\n\ntests/test_string_utils.py:14: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\ns = None\n\n def uppercase(s):\n if s is None:\n> raise TypeError(\"Input cannot be None\")\nE TypeError: Input cannot be None\n\nfunctions/string_utils.py:3: TypeError"}, "teardown": {"duration": 0.00018305203411728144, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_reverse_string", "lineno": 15, "outcome": "passed", "keywords": ["test_reverse_string", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00015661492943763733, "outcome": "passed"}, "call": {"duration": 0.00016095698811113834, "outcome": "passed"}, "teardown": {"duration": 0.00010271498467773199, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_warning_emit", "lineno": 19, "outcome": "passed", "keywords": ["test_warning_emit", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00010676996316760778, "outcome": "passed"}, "call": {"duration": 0.0001734130783006549, "outcome": "passed"}, "teardown": {"duration": 0.00011708796955645084, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_error", "lineno": 23, "outcome": "failed", "keywords": ["test_unicode_decode_error", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011107895988970995, "outcome": "passed"}, "call": {"duration": 0.00016814901027828455, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 26, "message": "UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 26, "message": "UnicodeDecodeError"}], "longrepr": "def test_unicode_decode_error():\n # UnicodeDecodeError when decoding invalid byte sequence\n> b'\\xff'.decode('utf-8')\nE UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte\n\ntests/test_string_utils.py:26: UnicodeDecodeError"}, "teardown": {"duration": 0.00014081597328186035, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_surrogateescape", "lineno": 27, "outcome": "failed", "keywords": ["test_unicode_decode_surrogateescape", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011643394827842712, "outcome": "passed"}, "call": {"duration": 0.00015874800737947226, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 30, "message": "UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 30, "message": "UnicodeDecodeError"}], "longrepr": "def test_unicode_decode_surrogateescape():\n # UnicodeDecodeError with strict error handler on invalid byte\n> b\"\\x80\".decode(\"utf-8\", errors=\"strict\")\nE UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte\n\ntests/test_string_utils.py:30: UnicodeDecodeError"}, "teardown": {"duration": 0.00013445201329886913, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_import_warning", "lineno": 31, "outcome": "passed", "keywords": ["test_import_warning", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011433695908635855, "outcome": "passed"}, "call": {"duration": 0.00013735308311879635, "outcome": "passed"}, "teardown": {"duration": 0.00011824897956103086, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_xfail_uppercase_digits", "lineno": 35, "outcome": "xfailed", "keywords": ["test_xfail_uppercase_digits", "xfail", "pytestmark", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012995698489248753, "outcome": "passed"}, "call": {"duration": 0.0006160879274830222, "outcome": "skipped", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 39, "message": "AssertionError: assert 'ABC123' == 'ABC1234'\n \n - ABC1234\n ? -\n + ABC123"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 39, "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:39: AssertionError"}, "teardown": {"duration": 0.00013392604887485504, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_keyboard_interrupt_direct", "lineno": 40, "outcome": "passed", "keywords": ["test_keyboard_interrupt_direct", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001188239548355341, "outcome": "passed"}}], "warnings": [{"message": "Test warning", "category": "UserWarning", "when": "runtest", "filename": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 22}]} \ No newline at end of file diff --git a/ci-reports/markdown/raw-test-output.log b/ci-reports/markdown/raw-test-output.log index b96d3b2a..2e1ce16e 100644 --- a/ci-reports/markdown/raw-test-output.log +++ b/ci-reports/markdown/raw-test-output.log @@ -1,7 +1,7 @@ ============================= test session starts ============================== platform linux -- Python 3.8.20, pytest-8.3.4, pluggy-1.5.0 rootdir: /workspace/tligui_y/slic -plugins: allure-pytest-2.13.5, cov-5.0.0, metadata-3.1.1, html-4.1.1, json-report-1.5.0, md-report-0.6.2 +plugins: cov-5.0.0, html-4.1.1, metadata-3.1.1, allure-pytest-2.13.5, md-report-0.6.2, json-report-1.5.0 collected 49 items / 2 errors tests/test_io_utils.py ..FFFFFF.F @@ -76,7 +76,7 @@ E FileNotFoundError: [Errno 2] No such file or directory: 'nonexistent.fil functions/io_utils.py:2: FileNotFoundError ____________________________ test_permission_error _____________________________ -monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f8c84fee550> +monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0db85d3460> def test_permission_error(monkeypatch): # Patch open to raise PermissionError simulating access denial @@ -100,7 +100,7 @@ E PermissionError: Permission denied tests/test_io_utils.py:34: PermissionError _____________________________ test_mock_open_error _____________________________ -monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f8c854968b0> +monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0db7c0b8e0> def test_mock_open_error(monkeypatch): # Mock open() to raise IOError simulating read error @@ -117,7 +117,7 @@ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ return self._execute_mock_call(*args, **kwargs) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = +self = args = ('file.txt', 'r'), kwargs = {}, effect = OSError('Mocked IOError') def _execute_mock_call(self, /, *args, **kwargs): @@ -143,7 +143,7 @@ E ValueError: I/O operation on closed file tests/test_io_utils.py:50: ValueError ________________________________ test_os_error _________________________________ -monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f8c85152490> +monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0db7e6adf0> def test_os_error(monkeypatch): # Patch os.remove to raise OSError simulating filesystem error @@ -311,7 +311,7 @@ tests/test_math_utils.py:106: StopIteration The above exception was the direct cause of the following exception: cls = -func = . at 0x7f8c8531a9d0> +func = . at 0x7f0db841e4c0> when = 'call' reraise = (, ) @@ -440,7 +440,7 @@ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = 'non_existent_module_xyz' -import_ = +import_ = > ??? E ModuleNotFoundError: No module named 'non_existent_module_xyz'