From e626c872878979e730ab7c2fabb4e37da55de1c9 Mon Sep 17 00:00:00 2001 From: ci-bot Date: Tue, 15 Jul 2025 12:13:13 +0000 Subject: [PATCH] CI: update test and coverage reports --- ci-reports/markdown/TEST-REPORT.md | 900 ++++++++++--------------- ci-reports/markdown/pytest-report.json | 2 +- 2 files changed, 372 insertions(+), 530 deletions(-) diff --git a/ci-reports/markdown/TEST-REPORT.md b/ci-reports/markdown/TEST-REPORT.md index 27f599fc6..9782cea88 100644 --- a/ci-reports/markdown/TEST-REPORT.md +++ b/ci-reports/markdown/TEST-REPORT.md @@ -16,10 +16,6 @@ FAILED tests/test_io_utils.py::test_os_error - OSError: Simulated OSError FAILED tests/test_io_utils.py::test_file_not_found_error - FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt' FAILED tests/test_math_utils.py::test_broken - NameError: name 'want_the_test_to_fail' is not defined FAILED tests/test_math_utils.py::test_call_missing_function - AttributeError: module 'functions.math_utils' has no attribute 'non_existent_function' -FAILED tests/test_math_utils.py::test_addition_pass[3-4-8] - assert 7 == 8 - + where 7 = addition(3, 4) -FAILED tests/test_math_utils.py::test_addition_pass[3-4-9] - assert 7 == 9 - + where 7 = addition(3, 4) FAILED tests/test_math_utils.py::test_addition_fail - assert 4 == 5 + where 4 = addition(2, 2) FAILED tests/test_math_utils.py::test_division_zero - ZeroDivisionError: division by zero @@ -52,7 +48,7 @@ ERROR tests/test_collector_error.py !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! KeyboardInterrupt !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! /workspace/tligui_y/slic/tests/test_string_utils.py:43: KeyboardInterrupt (to show a full traceback on KeyboardInterrupt use --full-trace) -======== 34 failed, 10 passed, 2 xfailed, 1 warning, 2 errors in 0.75s ========= +======== 32 failed, 12 passed, 2 xfailed, 1 warning, 2 errors in 0.71s ========= ``` @@ -63,11 +59,11 @@ 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: cov-5.0.0, allure-pytest-2.13.5, metadata-3.1.1, html-4.1.1, json-report-1.5.0, md-report-0.6.2 +plugins: metadata-3.1.1, allure-pytest-2.13.5, cov-5.0.0, html-4.1.1, md-report-0.6.2, json-report-1.5.0 collected 47 items / 2 errors tests/test_io_utils.py ..FFFFFF.F -tests/test_math_utils.py FF...FFFFxFFFFFFFFFFFFFFFFFF +tests/test_math_utils.py FF.....FFxFFFFFFFFFFFFFFFFFF tests/test_string_utils.py .F..FF.x ==================================== ERRORS ==================================== @@ -138,7 +134,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 0x7fa4939031c0> +monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f6e48c4c5b0> def test_permission_error(monkeypatch): # Patch open to raise PermissionError simulating access denial @@ -162,7 +158,7 @@ E PermissionError: Permission denied tests/test_io_utils.py:34: PermissionError _____________________________ test_mock_open_error _____________________________ -monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fa49390c790> +monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f6e48f3cd00> def test_mock_open_error(monkeypatch): # Mock open() to raise IOError simulating read error @@ -179,7 +175,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): @@ -205,7 +201,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 0x7fa490f028e0> +monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f6e48d5f0a0> def test_os_error(monkeypatch): # Patch os.remove to raise OSError simulating filesystem error @@ -248,46 +244,6 @@ __________________________ test_call_missing_function __________________________ E AttributeError: module 'functions.math_utils' has no attribute 'non_existent_function' tests/test_math_utils.py:20: AttributeError -__________________________ test_addition_pass[3-4-8] ___________________________ - -a = 3, b = 4, expected = 8 - - @pytest.mark.parametrize( - "a, b, expected", - [ - (2, 2, 4), - (1, 5, 6), - (3, 4, 7), - (3, 4, 8), - (3, 4, 9), - ] - ) - def test_addition_pass(a, b, expected): -> assert addition(a, b) == expected -E assert 7 == 8 -E + where 7 = addition(3, 4) - -tests/test_math_utils.py:33: AssertionError -__________________________ test_addition_pass[3-4-9] ___________________________ - -a = 3, b = 4, expected = 9 - - @pytest.mark.parametrize( - "a, b, expected", - [ - (2, 2, 4), - (1, 5, 6), - (3, 4, 7), - (3, 4, 8), - (3, 4, 9), - ] - ) - def test_addition_pass(a, b, expected): -> assert addition(a, b) == expected -E assert 7 == 9 -E + where 7 = addition(3, 4) - -tests/test_math_utils.py:33: AssertionError ______________________________ test_addition_fail ______________________________ def test_addition_fail(): @@ -413,7 +369,7 @@ tests/test_math_utils.py:92: StopIteration The above exception was the direct cause of the following exception: cls = -func = . at 0x7fa490f91160> +func = . at 0x7f6e48d40f70> when = 'call' reraise = (, ) @@ -569,7 +525,7 @@ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = 'non_existent_module_xyz' -import_ = +import_ = > ??? E ModuleNotFoundError: No module named 'non_existent_module_xyz' @@ -631,10 +587,6 @@ FAILED tests/test_io_utils.py::test_os_error - OSError: Simulated OSError FAILED tests/test_io_utils.py::test_file_not_found_error - FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt' FAILED tests/test_math_utils.py::test_broken - NameError: name 'want_the_test_to_fail' is not defined FAILED tests/test_math_utils.py::test_call_missing_function - AttributeError: module 'functions.math_utils' has no attribute 'non_existent_function' -FAILED tests/test_math_utils.py::test_addition_pass[3-4-8] - assert 7 == 8 - + where 7 = addition(3, 4) -FAILED tests/test_math_utils.py::test_addition_pass[3-4-9] - assert 7 == 9 - + where 7 = addition(3, 4) FAILED tests/test_math_utils.py::test_addition_fail - assert 4 == 5 + where 4 = addition(2, 2) FAILED tests/test_math_utils.py::test_division_zero - ZeroDivisionError: division by zero @@ -667,27 +619,27 @@ ERROR tests/test_collector_error.py !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! KeyboardInterrupt !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! /workspace/tligui_y/slic/tests/test_string_utils.py:43: KeyboardInterrupt (to show a full traceback on KeyboardInterrupt use --full-trace) -======== 34 failed, 10 passed, 2 xfailed, 1 warning, 2 errors in 0.75s ========= +======== 32 failed, 12 passed, 2 xfailed, 1 warning, 2 errors in 0.71s ========= ``` --- # ๐Ÿงช Test Report -*Generated on 2025-07-15 12:10:23* +*Generated on 2025-07-15 12:13:13* ## ๐Ÿ“‹ Summary -- **Passed**: `11` -- **Failed**: `34` +- **Passed**: `13` +- **Failed**: `32` - **Xfailed**: `2` - **Total**: `47` - **Collected**: `47` -- **Total Duration**: `0.748`s +- **Total Duration**: `0.717`s ## ๐Ÿ”Ž Tests
-โœ… Passed (11) +โœ… Passed (13)
@@ -702,7 +654,7 @@ ERROR tests/test_collector_error.py โœ… #1 - **Status:** โœ… `passed` -- **Duration:** `0.000473` s +- **Duration:** `0.000434` s ### ๐Ÿ”ง Setup Phase @@ -711,7 +663,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.003822325961664319` +`0.0035166579764336348` ```
@@ -736,7 +688,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.0004731599474325776` +`0.00043444905895739794` ```
@@ -761,7 +713,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.0015275080222636461` +`0.0014467650325968862` ``` @@ -795,7 +747,7 @@ ERROR tests/test_collector_error.py โœ… #2 - **Status:** โœ… `passed` -- **Duration:** `0.000344` s +- **Duration:** `0.000336` s ### ๐Ÿ”ง Setup Phase @@ -804,7 +756,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.0006986999651417136` +`0.0006216240581125021` ``` @@ -829,7 +781,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.00034403405152261257` +`0.000335944932885468` ``` @@ -854,7 +806,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.0007337200222536922` +`0.0006564119830727577` ``` @@ -888,7 +840,7 @@ ERROR tests/test_collector_error.py โœ… #9 - **Status:** โœ… `passed` -- **Duration:** `0.000907` s +- **Duration:** `0.000983` s ### ๐Ÿ”ง Setup Phase @@ -897,7 +849,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.0008289159741252661` +`0.0007124950643628836` ``` @@ -922,7 +874,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.0009067070204764605` +`0.000983349047601223` ``` @@ -947,7 +899,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.0006893279496580362` +`0.0006391720380634069` ``` @@ -989,7 +941,7 @@ ERROR tests/test_collector_error.py โœ… #13 parameters: [2-2-4] - **Status:** โœ… `passed` -- **Duration:** `0.000211` s +- **Duration:** `0.000201` s - **Parameters:** `2-2-4` ### ๐Ÿ”ง Setup Phase @@ -999,7 +951,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.0014849449507892132` +`0.0014690450625494123` ``` @@ -1024,7 +976,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.00021066400222480297` +`0.00020131992641836405` ``` @@ -1049,7 +1001,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.0008995949756354094` +`0.0009286189451813698` ``` @@ -1075,7 +1027,7 @@ ERROR tests/test_collector_error.py โœ… #14 parameters: [1-5-6] - **Status:** โœ… `passed` -- **Duration:** `0.000181` s +- **Duration:** `0.000175` s - **Parameters:** `1-5-6` ### ๐Ÿ”ง Setup Phase @@ -1085,7 +1037,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.0005459169624373317` +`0.0005130680510774255` ``` @@ -1110,7 +1062,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.00018050405196845531` +`0.00017460098024457693` ``` @@ -1135,7 +1087,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.0008475949289277196` +`0.0008526029996573925` ``` @@ -1171,7 +1123,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.0005220010643824935` +`0.0005159449065104127` ``` @@ -1196,7 +1148,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.0001740580191835761` +`0.00017443904653191566` ``` @@ -1221,7 +1173,179 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.0008454089984297752` +`0.0008400480728596449` +``` + + +
+ +
+
+๐Ÿ“Œ Outcome + +``` +`passed` +``` + +
+
+ + + + + +
+
+โœ… #16 parameters: [3-5-8] + +- **Status:** โœ… `passed` +- **Duration:** `0.000171` s +- **Parameters:** `3-5-8` + +### ๐Ÿ”ง Setup Phase + +
+
+๐Ÿ“Œ Duration + +``` +`0.0005007770378142595` +``` + +
+
+ +
+
+๐Ÿ“Œ Outcome + +``` +`passed` +``` + +
+
+ + +### ๐Ÿ”ง Call Phase + +
+
+๐Ÿ“Œ Duration + +``` +`0.00017120502889156342` +``` + +
+
+ +
+
+๐Ÿ“Œ Outcome + +``` +`passed` +``` + +
+
+ + +### ๐Ÿ”ง Teardown Phase + +
+
+๐Ÿ“Œ Duration + +``` +`0.0009357610251754522` +``` + +
+
+ +
+
+๐Ÿ“Œ Outcome + +``` +`passed` +``` + +
+
+ + +
+
+ +
+
+โœ… #17 parameters: [3-6-9] + +- **Status:** โœ… `passed` +- **Duration:** `0.000172` s +- **Parameters:** `3-6-9` + +### ๐Ÿ”ง Setup Phase + +
+
+๐Ÿ“Œ Duration + +``` +`0.000506339012645185` +``` + +
+
+ +
+
+๐Ÿ“Œ Outcome + +``` +`passed` +``` + +
+
+ + +### ๐Ÿ”ง Call Phase + +
+
+๐Ÿ“Œ Duration + +``` +`0.00017191795632243156` +``` + +
+
+ +
+
+๐Ÿ“Œ Outcome + +``` +`passed` +``` + +
+
+ + +### ๐Ÿ”ง Teardown Phase + +
+
+๐Ÿ“Œ Duration + +``` +`0.000818928936496377` ```
@@ -1263,7 +1387,7 @@ ERROR tests/test_collector_error.py โœ… #39 - **Status:** โœ… `passed` -- **Duration:** `0.000171` s +- **Duration:** `0.000167` s ### ๐Ÿ”ง Setup Phase @@ -1272,7 +1396,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.00018616602756083012` +`0.00019069400150328875` ```
@@ -1297,7 +1421,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.0001707680057734251` +`0.00016670406330376863` ``` @@ -1322,7 +1446,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.00020040804520249367` +`0.00019386201165616512` ``` @@ -1356,7 +1480,7 @@ ERROR tests/test_collector_error.py โœ… #41 - **Status:** โœ… `passed` -- **Duration:** `0.000164` s +- **Duration:** `0.000162` s ### ๐Ÿ”ง Setup Phase @@ -1365,7 +1489,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.00018124200869351625` +`0.00018229999113827944` ``` @@ -1390,7 +1514,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.00016405002679675817` +`0.00016205001156777143` ``` @@ -1415,7 +1539,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.00020425894763320684` +`0.00020074006170034409` ``` @@ -1449,7 +1573,7 @@ ERROR tests/test_collector_error.py โœ… #42 - **Status:** โœ… `passed` -- **Duration:** `0.000176` s +- **Duration:** `0.000182` s ### ๐Ÿ”ง Setup Phase @@ -1458,7 +1582,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.00018127495422959328` +`0.00017603300511837006` ``` @@ -1483,7 +1607,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.00017647596541792154` +`0.00018229999113827944` ``` @@ -1508,7 +1632,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.00019547308329492807` +`0.00019314500968903303` ``` @@ -1542,7 +1666,7 @@ ERROR tests/test_collector_error.py โœ… #45 - **Status:** โœ… `passed` -- **Duration:** `0.000160` s +- **Duration:** `0.000162` s ### ๐Ÿ”ง Setup Phase @@ -1551,7 +1675,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.00017957400996237993` +`0.0001857060706242919` ``` @@ -1576,7 +1700,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.00016024906653910875` +`0.00016247399616986513` ``` @@ -1601,7 +1725,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.00019111600704491138` +`0.00019130599685013294` ``` @@ -1644,7 +1768,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.0001809850800782442` +`0.00017899100203067064` ``` @@ -1679,7 +1803,7 @@ ERROR tests/test_collector_error.py
-โŒ Failed (34) +โŒ Failed (32)
@@ -1694,7 +1818,7 @@ ERROR tests/test_collector_error.py โŒ #3 - **Status:** โŒ `failed` -- **Duration:** `0.000187` s +- **Duration:** `0.000182` s ### ๐Ÿ”ง Setup Phase @@ -1703,7 +1827,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.00019322102889418602` +`0.00017793697770684958` ```
@@ -1728,7 +1852,7 @@ ERROR tests/test_collector_error.py ๐Ÿ“Œ Duration ``` -`0.00018686801195144653` +`0.00018180697225034237` ```
@@ -1797,7 +1921,7 @@ functions/io_utils.py:10: OSError` ๐Ÿ“Œ Duration ``` -`0.0002552029909566045` +`0.000240408000536263` ``` @@ -1831,7 +1955,7 @@ functions/io_utils.py:10: OSError` โŒ #4 - **Status:** โŒ `failed` -- **Duration:** `0.000206` s +- **Duration:** `0.000193` s ### ๐Ÿ”ง Setup Phase @@ -1840,7 +1964,7 @@ functions/io_utils.py:10: OSError` ๐Ÿ“Œ Duration ``` -`0.0001928760902956128` +`0.00018164294306188822` ``` @@ -1865,7 +1989,7 @@ functions/io_utils.py:10: OSError` ๐Ÿ“Œ Duration ``` -`0.00020632101222872734` +`0.00019315292593091726` ``` @@ -1936,7 +2060,7 @@ functions/io_utils.py:2: FileNotFoundError` ๐Ÿ“Œ Duration ``` -`0.0002504279837012291` +`0.0002374149626120925` ``` @@ -1970,7 +2094,7 @@ functions/io_utils.py:2: FileNotFoundError` โŒ #5 - **Status:** โŒ `failed` -- **Duration:** `0.000215` s +- **Duration:** `0.000209` s ### ๐Ÿ”ง Setup Phase @@ -1979,7 +2103,7 @@ functions/io_utils.py:2: FileNotFoundError` ๐Ÿ“Œ Duration ``` -`0.00038439000491052866` +`0.00034786900505423546` ``` @@ -2004,7 +2128,7 @@ functions/io_utils.py:2: FileNotFoundError` ๐Ÿ“Œ Duration ``` -`0.00021544506307691336` +`0.0002091319765895605` ``` @@ -2048,7 +2172,7 @@ functions/io_utils.py:2: FileNotFoundError` ๐Ÿ“Œ Longrepr ``` -`monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fa4939031c0> +`monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f6e48c4c5b0> def test_permission_error(monkeypatch): # Patch open to raise PermissionError simulating access denial @@ -2083,7 +2207,7 @@ tests/test_io_utils.py:34: PermissionError` ๐Ÿ“Œ Duration ``` -`0.0006876928964629769` +`0.000664573977701366` ``` @@ -2117,7 +2241,7 @@ tests/test_io_utils.py:34: PermissionError` โŒ #6 - **Status:** โŒ `failed` -- **Duration:** `0.003318` s +- **Duration:** `0.003154` s ### ๐Ÿ”ง Setup Phase @@ -2126,7 +2250,7 @@ tests/test_io_utils.py:34: PermissionError` ๐Ÿ“Œ Duration ``` -`0.00036767509300261736` +`0.0003449729410931468` ``` @@ -2151,7 +2275,7 @@ tests/test_io_utils.py:34: PermissionError` ๐Ÿ“Œ Duration ``` -`0.00331796205136925` +`0.0031536229653283954` ``` @@ -2195,7 +2319,7 @@ tests/test_io_utils.py:34: PermissionError` ๐Ÿ“Œ Longrepr ``` -`monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fa49390c790> +`monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f6e48f3cd00> def test_mock_open_error(monkeypatch): # Mock open() to raise IOError simulating read error @@ -2212,7 +2336,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): @@ -2239,7 +2363,7 @@ E OSError: Mocked IOError ๐Ÿ“Œ Duration ``` -`0.0012217919575050473` +`0.0009655390167608857` ``` @@ -2273,7 +2397,7 @@ E OSError: Mocked IOError โŒ #7 - **Status:** โŒ `failed` -- **Duration:** `0.000212` s +- **Duration:** `0.000208` s ### ๐Ÿ”ง Setup Phase @@ -2282,7 +2406,7 @@ E OSError: Mocked IOError ๐Ÿ“Œ Duration ``` -`0.00025550602003932` +`0.0002213449915871024` ``` @@ -2307,7 +2431,7 @@ E OSError: Mocked IOError ๐Ÿ“Œ Duration ``` -`0.00021155003923922777` +`0.00020831299480050802` ``` @@ -2372,7 +2496,7 @@ tests/test_io_utils.py:50: ValueError` ๐Ÿ“Œ Duration ``` -`0.00029247894417494535` +`0.0002631930401548743` ``` @@ -2406,7 +2530,7 @@ tests/test_io_utils.py:50: ValueError` โŒ #8 - **Status:** โŒ `failed` -- **Duration:** `0.000232` s +- **Duration:** `0.000211` s ### ๐Ÿ”ง Setup Phase @@ -2415,7 +2539,7 @@ tests/test_io_utils.py:50: ValueError` ๐Ÿ“Œ Duration ``` -`0.00046020897570997477` +`0.00039189099334180355` ``` @@ -2440,7 +2564,7 @@ tests/test_io_utils.py:50: ValueError` ๐Ÿ“Œ Duration ``` -`0.00023242400493472815` +`0.00021068996284157038` ``` @@ -2484,7 +2608,7 @@ tests/test_io_utils.py:50: ValueError` ๐Ÿ“Œ Longrepr ``` -`monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fa490f028e0> +`monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f6e48d5f0a0> def test_os_error(monkeypatch): # Patch os.remove to raise OSError simulating filesystem error @@ -2516,7 +2640,7 @@ tests/test_io_utils.py:55: OSError` ๐Ÿ“Œ Duration ``` -`0.0007765060290694237` +`0.0006699179066345096` ``` @@ -2550,7 +2674,7 @@ tests/test_io_utils.py:55: OSError` โŒ #10 - **Status:** โŒ `failed` -- **Duration:** `0.000195` s +- **Duration:** `0.000213` s ### ๐Ÿ”ง Setup Phase @@ -2559,7 +2683,7 @@ tests/test_io_utils.py:55: OSError` ๐Ÿ“Œ Duration ``` -`0.0001882379874587059` +`0.00017927505541592836` ``` @@ -2584,7 +2708,7 @@ tests/test_io_utils.py:55: OSError` ๐Ÿ“Œ Duration ``` -`0.00019488297402858734` +`0.00021297100465744734` ``` @@ -2647,7 +2771,7 @@ tests/test_io_utils.py:69: FileNotFoundError` ๐Ÿ“Œ Duration ``` -`0.0002416869392618537` +`0.00024172698613256216` ``` @@ -2689,7 +2813,7 @@ tests/test_io_utils.py:69: FileNotFoundError` โŒ #11 - **Status:** โŒ `failed` -- **Duration:** `0.000181` s +- **Duration:** `0.000187` s ### ๐Ÿ”ง Setup Phase @@ -2698,7 +2822,7 @@ tests/test_io_utils.py:69: FileNotFoundError` ๐Ÿ“Œ Duration ``` -`0.00019266200251877308` +`0.00018465996254235506` ``` @@ -2723,7 +2847,7 @@ tests/test_io_utils.py:69: FileNotFoundError` ๐Ÿ“Œ Duration ``` -`0.00018134107813239098` +`0.0001866919919848442` ``` @@ -2786,7 +2910,7 @@ tests/test_math_utils.py:16: NameError` ๐Ÿ“Œ Duration ``` -`0.0002457710215821862` +`0.00024391594342887402` ``` @@ -2820,7 +2944,7 @@ tests/test_math_utils.py:16: NameError` โŒ #12 - **Status:** โŒ `failed` -- **Duration:** `0.000181` s +- **Duration:** `0.000188` s ### ๐Ÿ”ง Setup Phase @@ -2829,7 +2953,7 @@ tests/test_math_utils.py:16: NameError` ๐Ÿ“Œ Duration ``` -`0.00019632605835795403` +`0.00017841404769569635` ``` @@ -2854,7 +2978,7 @@ tests/test_math_utils.py:16: NameError` ๐Ÿ“Œ Duration ``` -`0.0001809250097721815` +`0.00018785009160637856` ``` @@ -2917,289 +3041,7 @@ tests/test_math_utils.py:20: AttributeError` ๐Ÿ“Œ Duration ``` -`0.00023474800400435925` -``` - - -
- -
-
-๐Ÿ“Œ Outcome - -``` -`passed` -``` - -
-
- - - -
- - - - - -
-
-๐Ÿ”ง Function: `test_addition_pass` - -
-
-โŒ #16 parameters: [3-4-8] - -- **Status:** โŒ `failed` -- **Duration:** `0.000610` s -- **Parameters:** `3-4-8` - -### ๐Ÿ”ง Setup Phase - -
-
-๐Ÿ“Œ Duration - -``` -`0.0005401000380516052` -``` - -
-
- -
-
-๐Ÿ“Œ Outcome - -``` -`passed` -``` - -
-
- - -### ๐Ÿ”ง Call Phase - -
-
-๐Ÿ“Œ Duration - -``` -`0.0006104470230638981` -``` - -
-
- -
-
-๐Ÿ“Œ Outcome - -``` -`failed` -``` - -
-
- -
-
-๐Ÿ“Œ Crash - -``` -`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `33``, `message: `assert 7 == 8 - + where 7 = addition(3, 4)`` -``` - -
-
- -
-
-๐Ÿ“Œ Traceback - -``` -`path: `tests/test_math_utils.py``, `lineno: `33``, `message: `AssertionError`` -``` - -
-
- -
-
-๐Ÿ“Œ Longrepr - -``` -`a = 3, b = 4, expected = 8 - - @pytest.mark.parametrize( - "a, b, expected", - [ - (2, 2, 4), - (1, 5, 6), - (3, 4, 7), - (3, 4, 8), - (3, 4, 9), - ] - ) - def test_addition_pass(a, b, expected): -> assert addition(a, b) == expected -E assert 7 == 8 -E + where 7 = addition(3, 4) - -tests/test_math_utils.py:33: AssertionError` -``` - -
-
- - -### ๐Ÿ”ง Teardown Phase - -
-
-๐Ÿ“Œ Duration - -``` -`0.001010622945614159` -``` - -
-
- -
-
-๐Ÿ“Œ Outcome - -``` -`passed` -``` - -
-
- - -
-
- -
-
-โŒ #17 parameters: [3-4-9] - -- **Status:** โŒ `failed` -- **Duration:** `0.000309` s -- **Parameters:** `3-4-9` - -### ๐Ÿ”ง Setup Phase - -
-
-๐Ÿ“Œ Duration - -``` -`0.0005447359289973974` -``` - -
-
- -
-
-๐Ÿ“Œ Outcome - -``` -`passed` -``` - -
-
- - -### ๐Ÿ”ง Call Phase - -
-
-๐Ÿ“Œ Duration - -``` -`0.0003087640507146716` -``` - -
-
- -
-
-๐Ÿ“Œ Outcome - -``` -`failed` -``` - -
-
- -
-
-๐Ÿ“Œ Crash - -``` -`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `33``, `message: `assert 7 == 9 - + where 7 = addition(3, 4)`` -``` - -
-
- -
-
-๐Ÿ“Œ Traceback - -``` -`path: `tests/test_math_utils.py``, `lineno: `33``, `message: `AssertionError`` -``` - -
-
- -
-
-๐Ÿ“Œ Longrepr - -``` -`a = 3, b = 4, expected = 9 - - @pytest.mark.parametrize( - "a, b, expected", - [ - (2, 2, 4), - (1, 5, 6), - (3, 4, 7), - (3, 4, 8), - (3, 4, 9), - ] - ) - def test_addition_pass(a, b, expected): -> assert addition(a, b) == expected -E assert 7 == 9 -E + where 7 = addition(3, 4) - -tests/test_math_utils.py:33: AssertionError` -``` - -
-
- - -### ๐Ÿ”ง Teardown Phase - -
-
-๐Ÿ“Œ Duration - -``` -`0.0009565339423716068` +`0.0002554419916123152` ```
@@ -3233,7 +3075,7 @@ tests/test_math_utils.py:33: AssertionError` โŒ #18 - **Status:** โŒ `failed` -- **Duration:** `0.000284` s +- **Duration:** `0.000439` s ### ๐Ÿ”ง Setup Phase @@ -3242,7 +3084,7 @@ tests/test_math_utils.py:33: AssertionError` ๐Ÿ“Œ Duration ``` -`0.00019102194346487522` +`0.00018845894373953342` ```
@@ -3267,7 +3109,7 @@ tests/test_math_utils.py:33: AssertionError` ๐Ÿ“Œ Duration ``` -`0.00028398900758475065` +`0.0004388769157230854` ```
@@ -3332,7 +3174,7 @@ tests/test_math_utils.py:37: AssertionError` ๐Ÿ“Œ Duration ``` -`0.00023765990044921637` +`0.0002307329559698701` ``` @@ -3366,7 +3208,7 @@ tests/test_math_utils.py:37: AssertionError` โŒ #19 - **Status:** โŒ `failed` -- **Duration:** `0.000179` s +- **Duration:** `0.000181` s ### ๐Ÿ”ง Setup Phase @@ -3375,7 +3217,7 @@ tests/test_math_utils.py:37: AssertionError` ๐Ÿ“Œ Duration ``` -`0.00018040102440863848` +`0.0001847880193963647` ``` @@ -3400,7 +3242,7 @@ tests/test_math_utils.py:37: AssertionError` ๐Ÿ“Œ Duration ``` -`0.00017901207320392132` +`0.00018057599663734436` ``` @@ -3471,7 +3313,7 @@ functions/math_utils.py:5: ZeroDivisionError` ๐Ÿ“Œ Duration ``` -`0.00023337698075920343` +`0.0002354480093345046` ``` @@ -3505,7 +3347,7 @@ functions/math_utils.py:5: ZeroDivisionError` โŒ #21 - **Status:** โŒ `failed` -- **Duration:** `0.000185` s +- **Duration:** `0.000184` s ### ๐Ÿ”ง Setup Phase @@ -3514,7 +3356,7 @@ functions/math_utils.py:5: ZeroDivisionError` ๐Ÿ“Œ Duration ``` -`0.00018029892817139626` +`0.00019195396453142166` ``` @@ -3539,7 +3381,7 @@ functions/math_utils.py:5: ZeroDivisionError` ๐Ÿ“Œ Duration ``` -`0.00018498103599995375` +`0.0001836859155446291` ``` @@ -3602,7 +3444,7 @@ tests/test_math_utils.py:50: RuntimeError` ๐Ÿ“Œ Duration ``` -`0.0002515370724722743` +`0.00024699396453797817` ``` @@ -3636,7 +3478,7 @@ tests/test_math_utils.py:50: RuntimeError` โŒ #22 - **Status:** โŒ `failed` -- **Duration:** `0.000185` s +- **Duration:** `0.000174` s ### ๐Ÿ”ง Setup Phase @@ -3645,7 +3487,7 @@ tests/test_math_utils.py:50: RuntimeError` ๐Ÿ“Œ Duration ``` -`0.0001806539949029684` +`0.00017965096049010754` ``` @@ -3670,7 +3512,7 @@ tests/test_math_utils.py:50: RuntimeError` ๐Ÿ“Œ Duration ``` -`0.00018464401364326477` +`0.00017398502677679062` ``` @@ -3733,7 +3575,7 @@ tests/test_math_utils.py:54: MemoryError` ๐Ÿ“Œ Duration ``` -`0.00023484497796744108` +`0.00023268593940883875` ``` @@ -3767,7 +3609,7 @@ tests/test_math_utils.py:54: MemoryError` โŒ #23 - **Status:** โŒ `failed` -- **Duration:** `0.000175` s +- **Duration:** `0.000173` s ### ๐Ÿ”ง Setup Phase @@ -3776,7 +3618,7 @@ tests/test_math_utils.py:54: MemoryError` ๐Ÿ“Œ Duration ``` -`0.0001836098963394761` +`0.00019755400717258453` ``` @@ -3801,7 +3643,7 @@ tests/test_math_utils.py:54: MemoryError` ๐Ÿ“Œ Duration ``` -`0.00017454603221267462` +`0.0001733979443088174` ``` @@ -3864,7 +3706,7 @@ tests/test_math_utils.py:58: TimeoutError` ๐Ÿ“Œ Duration ``` -`0.00023250107187777758` +`0.0002358079655095935` ``` @@ -3898,7 +3740,7 @@ tests/test_math_utils.py:58: TimeoutError` โŒ #24 - **Status:** โŒ `failed` -- **Duration:** `0.000847` s +- **Duration:** `0.001058` s ### ๐Ÿ”ง Setup Phase @@ -3907,7 +3749,7 @@ tests/test_math_utils.py:58: TimeoutError` ๐Ÿ“Œ Duration ``` -`0.0001775040291249752` +`0.00017868191935122013` ``` @@ -3932,7 +3774,7 @@ tests/test_math_utils.py:58: TimeoutError` ๐Ÿ“Œ Duration ``` -`0.0008467530133202672` +`0.0010583270341157913` ``` @@ -4003,7 +3845,7 @@ E RecursionError: maximum recursion depth exceeded ๐Ÿ“Œ Duration ``` -`0.00024010695051401854` +`0.00023079500533640385` ``` @@ -4037,7 +3879,7 @@ E RecursionError: maximum recursion depth exceeded โŒ #25 - **Status:** โŒ `failed` -- **Duration:** `0.000176` s +- **Duration:** `0.000171` s ### ๐Ÿ”ง Setup Phase @@ -4046,7 +3888,7 @@ E RecursionError: maximum recursion depth exceeded ๐Ÿ“Œ Duration ``` -`0.0001863669604063034` +`0.00018965790513902903` ``` @@ -4071,7 +3913,7 @@ E RecursionError: maximum recursion depth exceeded ๐Ÿ“Œ Duration ``` -`0.00017567409668117762` +`0.0001708799973130226` ``` @@ -4134,7 +3976,7 @@ tests/test_math_utils.py:68: FloatingPointError` ๐Ÿ“Œ Duration ``` -`0.00023743999190628529` +`0.00023167498875409365` ``` @@ -4168,7 +4010,7 @@ tests/test_math_utils.py:68: FloatingPointError` โŒ #26 - **Status:** โŒ `failed` -- **Duration:** `0.000181` s +- **Duration:** `0.000175` s ### ๐Ÿ”ง Setup Phase @@ -4177,7 +4019,7 @@ tests/test_math_utils.py:68: FloatingPointError` ๐Ÿ“Œ Duration ``` -`0.0001806060317903757` +`0.0001792130060493946` ``` @@ -4202,7 +4044,7 @@ tests/test_math_utils.py:68: FloatingPointError` ๐Ÿ“Œ Duration ``` -`0.00018077401909977198` +`0.0001746600028127432` ``` @@ -4265,7 +4107,7 @@ tests/test_math_utils.py:72: OverflowError` ๐Ÿ“Œ Duration ``` -`0.00023591204080730677` +`0.00023158092517405748` ``` @@ -4299,7 +4141,7 @@ tests/test_math_utils.py:72: OverflowError` โŒ #27 - **Status:** โŒ `failed` -- **Duration:** `0.000201` s +- **Duration:** `0.000174` s ### ๐Ÿ”ง Setup Phase @@ -4308,7 +4150,7 @@ tests/test_math_utils.py:72: OverflowError` ๐Ÿ“Œ Duration ``` -`0.00018103700131177902` +`0.00017838599160313606` ``` @@ -4333,7 +4175,7 @@ tests/test_math_utils.py:72: OverflowError` ๐Ÿ“Œ Duration ``` -`0.00020069500897079706` +`0.00017434090841561556` ``` @@ -4396,7 +4238,7 @@ tests/test_math_utils.py:76: ValueError` ๐Ÿ“Œ Duration ``` -`0.00022996601182967424` +`0.00022912805434316397` ``` @@ -4430,7 +4272,7 @@ tests/test_math_utils.py:76: ValueError` โŒ #28 - **Status:** โŒ `failed` -- **Duration:** `0.000179` s +- **Duration:** `0.000184` s ### ๐Ÿ”ง Setup Phase @@ -4439,7 +4281,7 @@ tests/test_math_utils.py:76: ValueError` ๐Ÿ“Œ Duration ``` -`0.00017903803382068872` +`0.00017728598322719336` ``` @@ -4464,7 +4306,7 @@ tests/test_math_utils.py:76: ValueError` ๐Ÿ“Œ Duration ``` -`0.00017864606343209743` +`0.00018350908067077398` ``` @@ -4527,7 +4369,7 @@ tests/test_math_utils.py:80: TypeError` ๐Ÿ“Œ Duration ``` -`0.00023183994926512241` +`0.0002423119731247425` ``` @@ -4561,7 +4403,7 @@ tests/test_math_utils.py:80: TypeError` โŒ #29 - **Status:** โŒ `failed` -- **Duration:** `0.000184` s +- **Duration:** `0.000172` s ### ๐Ÿ”ง Setup Phase @@ -4570,7 +4412,7 @@ tests/test_math_utils.py:80: TypeError` ๐Ÿ“Œ Duration ``` -`0.0001848909305408597` +`0.00017633195966482162` ``` @@ -4595,7 +4437,7 @@ tests/test_math_utils.py:80: TypeError` ๐Ÿ“Œ Duration ``` -`0.00018407998140901327` +`0.00017191004008054733` ``` @@ -4658,7 +4500,7 @@ tests/test_math_utils.py:84: Exception` ๐Ÿ“Œ Duration ``` -`0.0002464079298079014` +`0.00022862199693918228` ``` @@ -4692,7 +4534,7 @@ tests/test_math_utils.py:84: Exception` โŒ #30 - **Status:** โŒ `failed` -- **Duration:** `0.000176` s +- **Duration:** `0.000170` s ### ๐Ÿ”ง Setup Phase @@ -4701,7 +4543,7 @@ tests/test_math_utils.py:84: Exception` ๐Ÿ“Œ Duration ``` -`0.00017904199194163084` +`0.00018363399431109428` ``` @@ -4726,7 +4568,7 @@ tests/test_math_utils.py:84: Exception` ๐Ÿ“Œ Duration ``` -`0.00017626909539103508` +`0.00017022097017616034` ``` @@ -4789,7 +4631,7 @@ tests/test_math_utils.py:88: CustomError` ๐Ÿ“Œ Duration ``` -`0.0002411039313301444` +`0.00023138499818742275` ``` @@ -4823,7 +4665,7 @@ tests/test_math_utils.py:88: CustomError` โŒ #31 - **Status:** โŒ `failed` -- **Duration:** `0.000174` s +- **Duration:** `0.000172` s ### ๐Ÿ”ง Setup Phase @@ -4832,7 +4674,7 @@ tests/test_math_utils.py:88: CustomError` ๐Ÿ“Œ Duration ``` -`0.00018751004245132208` +`0.0001812119735404849` ``` @@ -4857,7 +4699,7 @@ tests/test_math_utils.py:88: CustomError` ๐Ÿ“Œ Duration ``` -`0.0001741889864206314` +`0.00017157697584480047` ``` @@ -4911,7 +4753,7 @@ tests/test_math_utils.py:92: StopIteration The above exception was the direct cause of the following exception: cls = -func = . at 0x7fa490f91160> +func = . at 0x7f6e48d40f70> when = 'call' reraise = (, ) @@ -4984,7 +4826,7 @@ E RuntimeError: generator raised StopIteration ๐Ÿ“Œ Duration ``` -`0.0004168279701843858` +`0.00033502199221402407` ``` @@ -5018,7 +4860,7 @@ E RuntimeError: generator raised StopIteration โŒ #32 - **Status:** โŒ `failed` -- **Duration:** `0.000200` s +- **Duration:** `0.000186` s ### ๐Ÿ”ง Setup Phase @@ -5027,7 +4869,7 @@ E RuntimeError: generator raised StopIteration ๐Ÿ“Œ Duration ``` -`0.00027394306380301714` +`0.00024464703164994717` ``` @@ -5052,7 +4894,7 @@ E RuntimeError: generator raised StopIteration ๐Ÿ“Œ Duration ``` -`0.0002000079257413745` +`0.0001863220240920782` ``` @@ -5115,7 +4957,7 @@ tests/test_math_utils.py:96: GeneratorExit` ๐Ÿ“Œ Duration ``` -`0.0002677120501175523` +`0.000257113017141819` ``` @@ -5149,7 +4991,7 @@ tests/test_math_utils.py:96: GeneratorExit` โŒ #33 - **Status:** โŒ `failed` -- **Duration:** `0.000191` s +- **Duration:** `0.000179` s ### ๐Ÿ”ง Setup Phase @@ -5158,7 +5000,7 @@ tests/test_math_utils.py:96: GeneratorExit` ๐Ÿ“Œ Duration ``` -`0.00019355001859366894` +`0.00018425099551677704` ``` @@ -5183,7 +5025,7 @@ tests/test_math_utils.py:96: GeneratorExit` ๐Ÿ“Œ Duration ``` -`0.0001914440654218197` +`0.00017910602036863565` ``` @@ -5247,7 +5089,7 @@ tests/test_math_utils.py:101: RecursionError` ๐Ÿ“Œ Duration ``` -`0.00023586000315845013` +`0.00024480000138282776` ``` @@ -5281,7 +5123,7 @@ tests/test_math_utils.py:101: RecursionError` โŒ #34 - **Status:** โŒ `failed` -- **Duration:** `0.000203` s +- **Duration:** `0.000187` s ### ๐Ÿ”ง Setup Phase @@ -5290,7 +5132,7 @@ tests/test_math_utils.py:101: RecursionError` ๐Ÿ“Œ Duration ``` -`0.00018673797603696585` +`0.00018217903561890125` ``` @@ -5315,7 +5157,7 @@ tests/test_math_utils.py:101: RecursionError` ๐Ÿ“Œ Duration ``` -`0.00020275998394936323` +`0.00018679490312933922` ``` @@ -5384,7 +5226,7 @@ tests/test_math_utils.py:111: SyntaxError` ๐Ÿ“Œ Duration ``` -`0.00023639900609850883` +`0.0002417030045762658` ``` @@ -5418,7 +5260,7 @@ tests/test_math_utils.py:111: SyntaxError` โŒ #35 - **Status:** โŒ `failed` -- **Duration:** `0.000171` s +- **Duration:** `0.000174` s ### ๐Ÿ”ง Setup Phase @@ -5427,7 +5269,7 @@ tests/test_math_utils.py:111: SyntaxError` ๐Ÿ“Œ Duration ``` -`0.00019390101078897715` +`0.0001809659879654646` ``` @@ -5452,7 +5294,7 @@ tests/test_math_utils.py:111: SyntaxError` ๐Ÿ“Œ Duration ``` -`0.00017074402421712875` +`0.00017422297969460487` ``` @@ -5515,7 +5357,7 @@ tests/test_math_utils.py:115: SystemExit` ๐Ÿ“Œ Duration ``` -`0.00023257802240550518` +`0.0002322889631614089` ``` @@ -5549,7 +5391,7 @@ tests/test_math_utils.py:115: SystemExit` โŒ #36 - **Status:** โŒ `failed` -- **Duration:** `0.000173` s +- **Duration:** `0.000178` s ### ๐Ÿ”ง Setup Phase @@ -5558,7 +5400,7 @@ tests/test_math_utils.py:115: SystemExit` ๐Ÿ“Œ Duration ``` -`0.00019231298938393593` +`0.00019171088933944702` ``` @@ -5583,7 +5425,7 @@ tests/test_math_utils.py:115: SystemExit` ๐Ÿ“Œ Duration ``` -`0.00017310690600425005` +`0.00017822999507188797` ``` @@ -5656,7 +5498,7 @@ tests/test_math_utils.py:120: TypeError` ๐Ÿ“Œ Duration ``` -`0.00025596993509680033` +`0.00023769598919898272` ``` @@ -5690,7 +5532,7 @@ tests/test_math_utils.py:120: TypeError` โŒ #37 - **Status:** โŒ `failed` -- **Duration:** `0.000197` s +- **Duration:** `0.000182` s ### ๐Ÿ”ง Setup Phase @@ -5699,7 +5541,7 @@ tests/test_math_utils.py:120: TypeError` ๐Ÿ“Œ Duration ``` -`0.0001832999987527728` +`0.0001842400524765253` ``` @@ -5724,7 +5566,7 @@ tests/test_math_utils.py:120: TypeError` ๐Ÿ“Œ Duration ``` -`0.0001967590069398284` +`0.00018165004439651966` ``` @@ -5804,7 +5646,7 @@ tests/test_math_utils.py:128: ImportError` ๐Ÿ“Œ Duration ``` -`0.00024674308951944113` +`0.0002662979532033205` ``` @@ -5838,7 +5680,7 @@ tests/test_math_utils.py:128: ImportError` โŒ #38 - **Status:** โŒ `failed` -- **Duration:** `0.000517` s +- **Duration:** `0.000449` s ### ๐Ÿ”ง Setup Phase @@ -5847,7 +5689,7 @@ tests/test_math_utils.py:128: ImportError` ๐Ÿ“Œ Duration ``` -`0.00019285304006189108` +`0.00018930609803646803` ``` @@ -5872,7 +5714,7 @@ tests/test_math_utils.py:128: ImportError` ๐Ÿ“Œ Duration ``` -`0.0005172230303287506` +`0.00044853403232991695` ``` @@ -5931,7 +5773,7 @@ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = 'non_existent_module_xyz' -import_ = +import_ = > ??? E ModuleNotFoundError: No module named 'non_existent_module_xyz' @@ -5950,7 +5792,7 @@ E ModuleNotFoundError: No module named 'non_existent_module_xyz' ๐Ÿ“Œ Duration ``` -`0.00024469406343996525` +`0.00024841504637151957` ``` @@ -5992,7 +5834,7 @@ E ModuleNotFoundError: No module named 'non_existent_module_xyz' โŒ #40 - **Status:** โŒ `failed` -- **Duration:** `0.000172` s +- **Duration:** `0.000171` s ### ๐Ÿ”ง Setup Phase @@ -6001,7 +5843,7 @@ E ModuleNotFoundError: No module named 'non_existent_module_xyz' ๐Ÿ“Œ Duration ``` -`0.00017426407430320978` +`0.000169189996086061` ``` @@ -6026,7 +5868,7 @@ E ModuleNotFoundError: No module named 'non_existent_module_xyz' ๐Ÿ“Œ Duration ``` -`0.00017236301209777594` +`0.00017127697356045246` ``` @@ -6098,7 +5940,7 @@ functions/string_utils.py:3: TypeError` ๐Ÿ“Œ Duration ``` -`0.00023974303621798754` +`0.00023349106777459383` ``` @@ -6132,7 +5974,7 @@ functions/string_utils.py:3: TypeError` โŒ #43 - **Status:** โŒ `failed` -- **Duration:** `0.000170` s +- **Duration:** `0.000173` s ### ๐Ÿ”ง Setup Phase @@ -6141,7 +5983,7 @@ functions/string_utils.py:3: TypeError` ๐Ÿ“Œ Duration ``` -`0.00016904296353459358` +`0.00017974397633224726` ``` @@ -6166,7 +6008,7 @@ functions/string_utils.py:3: TypeError` ๐Ÿ“Œ Duration ``` -`0.00017013400793075562` +`0.0001731460215523839` ``` @@ -6229,7 +6071,7 @@ tests/test_string_utils.py:26: UnicodeDecodeError` ๐Ÿ“Œ Duration ``` -`0.00024395796936005354` +`0.00022754305973649025` ``` @@ -6263,7 +6105,7 @@ tests/test_string_utils.py:26: UnicodeDecodeError` โŒ #44 - **Status:** โŒ `failed` -- **Duration:** `0.000174` s +- **Duration:** `0.000187` s ### ๐Ÿ”ง Setup Phase @@ -6272,7 +6114,7 @@ tests/test_string_utils.py:26: UnicodeDecodeError` ๐Ÿ“Œ Duration ``` -`0.0001788460649549961` +`0.00018849503248929977` ``` @@ -6297,7 +6139,7 @@ tests/test_string_utils.py:26: UnicodeDecodeError` ๐Ÿ“Œ Duration ``` -`0.00017427699640393257` +`0.00018655601888895035` ``` @@ -6360,7 +6202,7 @@ tests/test_string_utils.py:30: UnicodeDecodeError` ๐Ÿ“Œ Duration ``` -`0.00023479398805648088` +`0.00022853701375424862` ``` @@ -6410,7 +6252,7 @@ tests/test_string_utils.py:30: UnicodeDecodeError` โŒ #20 - **Status:** โŒ `xfailed` -- **Duration:** `0.000272` s +- **Duration:** `0.000281` s ### ๐Ÿ”ง Setup Phase @@ -6419,7 +6261,7 @@ tests/test_string_utils.py:30: UnicodeDecodeError` ๐Ÿ“Œ Duration ``` -`0.0002034349599853158` +`0.0001942629460245371` ``` @@ -6444,7 +6286,7 @@ tests/test_string_utils.py:30: UnicodeDecodeError` ๐Ÿ“Œ Duration ``` -`0.0002716690069064498` +`0.0002812769962474704` ``` @@ -6510,7 +6352,7 @@ tests/test_math_utils.py:46: AssertionError` ๐Ÿ“Œ Duration ``` -`0.00025524699594825506` +`0.0002498610410839319` ``` @@ -6552,7 +6394,7 @@ tests/test_math_utils.py:46: AssertionError` โŒ #46 - **Status:** โŒ `xfailed` -- **Duration:** `0.000630` s +- **Duration:** `0.000586` s ### ๐Ÿ”ง Setup Phase @@ -6561,7 +6403,7 @@ tests/test_math_utils.py:46: AssertionError` ๐Ÿ“Œ Duration ``` -`0.00019345409236848354` +`0.00018823996651917696` ``` @@ -6586,7 +6428,7 @@ tests/test_math_utils.py:46: AssertionError` ๐Ÿ“Œ Duration ``` -`0.0006304220296442509` +`0.0005862459074705839` ``` @@ -6658,7 +6500,7 @@ tests/test_string_utils.py:39: AssertionError` ๐Ÿ“Œ Duration ``` -`0.0002575049875304103` +`0.0002510810736566782` ``` @@ -7057,7 +6899,7 @@ result: - **Details:** ``` 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: `21``, `nodeid: `tests/test_math_utils.py::test_addition_pass[1-5-6]``, `type: `Function``, `lineno: `21``, `nodeid: `tests/test_math_utils.py::test_addition_pass[3-4-7]``, `type: `Function``, `lineno: `21``, `nodeid: `tests/test_math_utils.py::test_addition_pass[3-4-8]``, `type: `Function``, `lineno: `21``, `nodeid: `tests/test_math_utils.py::test_addition_pass[3-4-9]``, `type: `Function``, `lineno: `21``, `nodeid: `tests/test_math_utils.py::test_addition_fail``, `type: `Function``, `lineno: `34``, `nodeid: `tests/test_math_utils.py::test_division_zero``, `type: `Function``, `lineno: `38``, `nodeid: `tests/test_math_utils.py::test_multiply_xfail``, `type: `Function``, `lineno: `42``, `nodeid: `tests/test_math_utils.py::test_runtime_error``, `type: `Function``, `lineno: `47``, `nodeid: `tests/test_math_utils.py::test_memory_error``, `type: `Function``, `lineno: `51``, `nodeid: `tests/test_math_utils.py::test_timeout_error``, `type: `Function``, `lineno: `55``, `nodeid: `tests/test_math_utils.py::test_recursion_error``, `type: `Function``, `lineno: `59``, `nodeid: `tests/test_math_utils.py::test_floating_point_error``, `type: `Function``, `lineno: `65``, `nodeid: `tests/test_math_utils.py::test_floating_point_overflow``, `type: `Function``, `lineno: `69``, `nodeid: `tests/test_math_utils.py::test_value_error``, `type: `Function``, `lineno: `73``, `nodeid: `tests/test_math_utils.py::test_type_error``, `type: `Function``, `lineno: `77``, `nodeid: `tests/test_math_utils.py::test_unhandled_exception``, `type: `Function``, `lineno: `81``, `nodeid: `tests/test_math_utils.py::test_custom_error``, `type: `Function``, `lineno: `85``, `nodeid: `tests/test_math_utils.py::test_stop_iteration_direct``, `type: `Function``, `lineno: `89``, `nodeid: `tests/test_math_utils.py::test_generator_exit_direct``, `type: `Function``, `lineno: `93``, `nodeid: `tests/test_math_utils.py::test_recursion_limit``, `type: `Function``, `lineno: `97``, `nodeid: `tests/test_math_utils.py::test_malformed_code``, `type: `Function``, `lineno: `108``, `nodeid: `tests/test_math_utils.py::test_sys_exit``, `type: `Function``, `lineno: `112``, `nodeid: `tests/test_math_utils.py::test_broken_function``, `type: `Function``, `lineno: `116``, `nodeid: `tests/test_math_utils.py::test_import_error_patch``, `type: `Function``, `lineno: `122``, `nodeid: `tests/test_math_utils.py::test_module_not_found_error``, `type: `Function``, `lineno: `136`` +`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: `21``, `nodeid: `tests/test_math_utils.py::test_addition_pass[1-5-6]``, `type: `Function``, `lineno: `21``, `nodeid: `tests/test_math_utils.py::test_addition_pass[3-4-7]``, `type: `Function``, `lineno: `21``, `nodeid: `tests/test_math_utils.py::test_addition_pass[3-5-8]``, `type: `Function``, `lineno: `21``, `nodeid: `tests/test_math_utils.py::test_addition_pass[3-6-9]``, `type: `Function``, `lineno: `21``, `nodeid: `tests/test_math_utils.py::test_addition_fail``, `type: `Function``, `lineno: `34``, `nodeid: `tests/test_math_utils.py::test_division_zero``, `type: `Function``, `lineno: `38``, `nodeid: `tests/test_math_utils.py::test_multiply_xfail``, `type: `Function``, `lineno: `42``, `nodeid: `tests/test_math_utils.py::test_runtime_error``, `type: `Function``, `lineno: `47``, `nodeid: `tests/test_math_utils.py::test_memory_error``, `type: `Function``, `lineno: `51``, `nodeid: `tests/test_math_utils.py::test_timeout_error``, `type: `Function``, `lineno: `55``, `nodeid: `tests/test_math_utils.py::test_recursion_error``, `type: `Function``, `lineno: `59``, `nodeid: `tests/test_math_utils.py::test_floating_point_error``, `type: `Function``, `lineno: `65``, `nodeid: `tests/test_math_utils.py::test_floating_point_overflow``, `type: `Function``, `lineno: `69``, `nodeid: `tests/test_math_utils.py::test_value_error``, `type: `Function``, `lineno: `73``, `nodeid: `tests/test_math_utils.py::test_type_error``, `type: `Function``, `lineno: `77``, `nodeid: `tests/test_math_utils.py::test_unhandled_exception``, `type: `Function``, `lineno: `81``, `nodeid: `tests/test_math_utils.py::test_custom_error``, `type: `Function``, `lineno: `85``, `nodeid: `tests/test_math_utils.py::test_stop_iteration_direct``, `type: `Function``, `lineno: `89``, `nodeid: `tests/test_math_utils.py::test_generator_exit_direct``, `type: `Function``, `lineno: `93``, `nodeid: `tests/test_math_utils.py::test_recursion_limit``, `type: `Function``, `lineno: `97``, `nodeid: `tests/test_math_utils.py::test_malformed_code``, `type: `Function``, `lineno: `108``, `nodeid: `tests/test_math_utils.py::test_sys_exit``, `type: `Function``, `lineno: `112``, `nodeid: `tests/test_math_utils.py::test_broken_function``, `type: `Function``, `lineno: `116``, `nodeid: `tests/test_math_utils.py::test_import_error_patch``, `type: `Function``, `lineno: `122``, `nodeid: `tests/test_math_utils.py::test_module_not_found_error``, `type: `Function``, `lineno: `136`` ``` diff --git a/ci-reports/markdown/pytest-report.json b/ci-reports/markdown/pytest-report.json index bd190be52..7bdeedd28 100644 --- a/ci-reports/markdown/pytest-report.json +++ b/ci-reports/markdown/pytest-report.json @@ -1 +1 @@ -{"created": 1752581421.5499005, "duration": 0.7478203773498535, "exitcode": 2, "root": "/workspace/tligui_y/slic", "environment": {}, "summary": {"passed": 11, "failed": 34, "xfailed": 2, "total": 47, "collected": 47}, "collectors": [{"nodeid": "", "outcome": "passed", "result": [{"nodeid": ".", "type": "Dir"}]}, {"nodeid": "allure-results", "outcome": "passed", "result": []}, {"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": 21}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[1-5-6]", "type": "Function", "lineno": 21}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-7]", "type": "Function", "lineno": 21}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-8]", "type": "Function", "lineno": 21}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-9]", "type": "Function", "lineno": 21}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "type": "Function", "lineno": 34}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "type": "Function", "lineno": 38}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "type": "Function", "lineno": 42}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "type": "Function", "lineno": 47}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "type": "Function", "lineno": 51}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "type": "Function", "lineno": 55}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "type": "Function", "lineno": 59}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "type": "Function", "lineno": 65}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "type": "Function", "lineno": 69}, {"nodeid": "tests/test_math_utils.py::test_value_error", "type": "Function", "lineno": 73}, {"nodeid": "tests/test_math_utils.py::test_type_error", "type": "Function", "lineno": 77}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "type": "Function", "lineno": 81}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "type": "Function", "lineno": 85}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "type": "Function", "lineno": 89}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "type": "Function", "lineno": 93}, {"nodeid": "tests/test_math_utils.py::test_recursion_limit", "type": "Function", "lineno": 97}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "type": "Function", "lineno": 108}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "type": "Function", "lineno": 112}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "type": "Function", "lineno": 116}, {"nodeid": "tests/test_math_utils.py::test_import_error_patch", "type": "Function", "lineno": 122}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "type": "Function", "lineno": 136}]}, {"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": "allure-results", "type": "Dir"}, {"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.003822325961664319, "outcome": "passed"}, "call": {"duration": 0.0004731599474325776, "outcome": "passed"}, "teardown": {"duration": 0.0015275080222636461, "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.0006986999651417136, "outcome": "passed"}, "call": {"duration": 0.00034403405152261257, "outcome": "passed"}, "teardown": {"duration": 0.0007337200222536922, "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.00019322102889418602, "outcome": "passed"}, "call": {"duration": 0.00018686801195144653, "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.0002552029909566045, "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.0001928760902956128, "outcome": "passed"}, "call": {"duration": 0.00020632101222872734, "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.0002504279837012291, "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.00038439000491052866, "outcome": "passed"}, "call": {"duration": 0.00021544506307691336, "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 0x7fa4939031c0>\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.0006876928964629769, "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.00036767509300261736, "outcome": "passed"}, "call": {"duration": 0.00331796205136925, "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 0x7fa49390c790>\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.0012217919575050473, "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.00025550602003932, "outcome": "passed"}, "call": {"duration": 0.00021155003923922777, "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.00029247894417494535, "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.00046020897570997477, "outcome": "passed"}, "call": {"duration": 0.00023242400493472815, "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 0x7fa490f028e0>\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.0007765060290694237, "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.0008289159741252661, "outcome": "passed"}, "call": {"duration": 0.0009067070204764605, "outcome": "passed"}, "teardown": {"duration": 0.0006893279496580362, "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.0001882379874587059, "outcome": "passed"}, "call": {"duration": 0.00019488297402858734, "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.0002416869392618537, "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.00019266200251877308, "outcome": "passed"}, "call": {"duration": 0.00018134107813239098, "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.0002457710215821862, "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.00019632605835795403, "outcome": "passed"}, "call": {"duration": 0.0001809250097721815, "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.00023474800400435925, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[2-2-4]", "lineno": 21, "outcome": "passed", "keywords": ["test_addition_pass[2-2-4]", "parametrize", "pytestmark", "2-2-4", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0014849449507892132, "outcome": "passed"}, "call": {"duration": 0.00021066400222480297, "outcome": "passed"}, "teardown": {"duration": 0.0008995949756354094, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[1-5-6]", "lineno": 21, "outcome": "passed", "keywords": ["test_addition_pass[1-5-6]", "parametrize", "pytestmark", "1-5-6", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0005459169624373317, "outcome": "passed"}, "call": {"duration": 0.00018050405196845531, "outcome": "passed"}, "teardown": {"duration": 0.0008475949289277196, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-7]", "lineno": 21, "outcome": "passed", "keywords": ["test_addition_pass[3-4-7]", "parametrize", "pytestmark", "3-4-7", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0005220010643824935, "outcome": "passed"}, "call": {"duration": 0.0001740580191835761, "outcome": "passed"}, "teardown": {"duration": 0.0008454089984297752, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-8]", "lineno": 21, "outcome": "failed", "keywords": ["test_addition_pass[3-4-8]", "parametrize", "pytestmark", "3-4-8", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0005401000380516052, "outcome": "passed"}, "call": {"duration": 0.0006104470230638981, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 33, "message": "assert 7 == 8\n + where 7 = addition(3, 4)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 33, "message": "AssertionError"}], "longrepr": "a = 3, b = 4, expected = 8\n\n @pytest.mark.parametrize(\n \"a, b, expected\",\n [\n (2, 2, 4),\n (1, 5, 6),\n (3, 4, 7),\n (3, 4, 8),\n (3, 4, 9),\n ]\n )\n def test_addition_pass(a, b, expected):\n> assert addition(a, b) == expected\nE assert 7 == 8\nE + where 7 = addition(3, 4)\n\ntests/test_math_utils.py:33: AssertionError"}, "teardown": {"duration": 0.001010622945614159, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-9]", "lineno": 21, "outcome": "failed", "keywords": ["test_addition_pass[3-4-9]", "parametrize", "pytestmark", "3-4-9", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0005447359289973974, "outcome": "passed"}, "call": {"duration": 0.0003087640507146716, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 33, "message": "assert 7 == 9\n + where 7 = addition(3, 4)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 33, "message": "AssertionError"}], "longrepr": "a = 3, b = 4, expected = 9\n\n @pytest.mark.parametrize(\n \"a, b, expected\",\n [\n (2, 2, 4),\n (1, 5, 6),\n (3, 4, 7),\n (3, 4, 8),\n (3, 4, 9),\n ]\n )\n def test_addition_pass(a, b, expected):\n> assert addition(a, b) == expected\nE assert 7 == 9\nE + where 7 = addition(3, 4)\n\ntests/test_math_utils.py:33: AssertionError"}, "teardown": {"duration": 0.0009565339423716068, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "lineno": 34, "outcome": "failed", "keywords": ["test_addition_fail", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019102194346487522, "outcome": "passed"}, "call": {"duration": 0.00028398900758475065, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 37, "message": "assert 4 == 5\n + where 4 = addition(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 37, "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:37: AssertionError"}, "teardown": {"duration": 0.00023765990044921637, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "lineno": 38, "outcome": "failed", "keywords": ["test_division_zero", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018040102440863848, "outcome": "passed"}, "call": {"duration": 0.00017901207320392132, "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": 41, "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:41: \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.00023337698075920343, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "lineno": 42, "outcome": "xfailed", "keywords": ["test_multiply_xfail", "xfail", "pytestmark", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002034349599853158, "outcome": "passed"}, "call": {"duration": 0.0002716690069064498, "outcome": "skipped", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 46, "message": "assert 4 == 5\n + where 4 = multiply(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 46, "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:46: AssertionError"}, "teardown": {"duration": 0.00025524699594825506, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "lineno": 47, "outcome": "failed", "keywords": ["test_runtime_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018029892817139626, "outcome": "passed"}, "call": {"duration": 0.00018498103599995375, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 50, "message": "RuntimeError: Forced runtime error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 50, "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:50: RuntimeError"}, "teardown": {"duration": 0.0002515370724722743, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "lineno": 51, "outcome": "failed", "keywords": ["test_memory_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001806539949029684, "outcome": "passed"}, "call": {"duration": 0.00018464401364326477, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 54, "message": "MemoryError: Simulated memory error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 54, "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:54: MemoryError"}, "teardown": {"duration": 0.00023484497796744108, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "lineno": 55, "outcome": "failed", "keywords": ["test_timeout_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001836098963394761, "outcome": "passed"}, "call": {"duration": 0.00017454603221267462, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 58, "message": "TimeoutError: Simulated timeout error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 58, "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:58: TimeoutError"}, "teardown": {"duration": 0.00023250107187777758, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "lineno": 59, "outcome": "failed", "keywords": ["test_recursion_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001775040291249752, "outcome": "passed"}, "call": {"duration": 0.0008467530133202672, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 63, "message": "RecursionError: maximum recursion depth exceeded"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 64, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 63, "message": "in recursive"}, {"path": "tests/test_math_utils.py", "lineno": 63, "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:64: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \ntests/test_math_utils.py:63: in recursive\n return recursive()\ntests/test_math_utils.py:63: in recursive\n return recursive()\nE RecursionError: maximum recursion depth exceeded\n!!! Recursion detected (same locals & position)"}, "teardown": {"duration": 0.00024010695051401854, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "lineno": 65, "outcome": "failed", "keywords": ["test_floating_point_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001863669604063034, "outcome": "passed"}, "call": {"duration": 0.00017567409668117762, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 68, "message": "FloatingPointError: Simulated floating point error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 68, "message": "FloatingPointError"}], "longrepr": "def test_floating_point_error():\n # Manually raise FloatingPointError (rare in practice)\n> raise FloatingPointError(\"Simulated floating point error\")\nE FloatingPointError: Simulated floating point error\n\ntests/test_math_utils.py:68: FloatingPointError"}, "teardown": {"duration": 0.00023743999190628529, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "lineno": 69, "outcome": "failed", "keywords": ["test_floating_point_overflow", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001806060317903757, "outcome": "passed"}, "call": {"duration": 0.00018077401909977198, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 72, "message": "OverflowError: math range error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 72, "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:72: OverflowError"}, "teardown": {"duration": 0.00023591204080730677, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_value_error", "lineno": 73, "outcome": "failed", "keywords": ["test_value_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018103700131177902, "outcome": "passed"}, "call": {"duration": 0.00020069500897079706, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 76, "message": "ValueError: invalid literal for int() with base 10: 'invalid'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 76, "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:76: ValueError"}, "teardown": {"duration": 0.00022996601182967424, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_type_error", "lineno": 77, "outcome": "failed", "keywords": ["test_type_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017903803382068872, "outcome": "passed"}, "call": {"duration": 0.00017864606343209743, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 80, "message": "TypeError: 'int' object is not iterable"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 80, "message": "TypeError"}], "longrepr": "def test_type_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:80: TypeError"}, "teardown": {"duration": 0.00023183994926512241, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "lineno": 81, "outcome": "failed", "keywords": ["test_unhandled_exception", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001848909305408597, "outcome": "passed"}, "call": {"duration": 0.00018407998140901327, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 84, "message": "Exception: Generic unhandled exception"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 84, "message": "Exception"}], "longrepr": "def test_unhandled_exception():\n # Raises generic unhandled Exception\n> raise Exception(\"Generic unhandled exception\")\nE Exception: Generic unhandled exception\n\ntests/test_math_utils.py:84: Exception"}, "teardown": {"duration": 0.0002464079298079014, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "lineno": 85, "outcome": "failed", "keywords": ["test_custom_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017904199194163084, "outcome": "passed"}, "call": {"duration": 0.00017626909539103508, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 88, "message": "test_math_utils.CustomError: Custom error simulation"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 88, "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:88: CustomError"}, "teardown": {"duration": 0.0002411039313301444, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "lineno": 89, "outcome": "failed", "keywords": ["test_stop_iteration_direct", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018751004245132208, "outcome": "passed"}, "call": {"duration": 0.0001741889864206314, "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:92: StopIteration\n\nThe above exception was the direct cause of the following exception:\n\ncls = \nfunc = . at 0x7fa490f91160>\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.0004168279701843858, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "lineno": 93, "outcome": "failed", "keywords": ["test_generator_exit_direct", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00027394306380301714, "outcome": "passed"}, "call": {"duration": 0.0002000079257413745, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 96, "message": "GeneratorExit"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 96, "message": "GeneratorExit"}], "longrepr": "def test_generator_exit_direct():\n # Directly raise GeneratorExit exception\n> raise GeneratorExit()\nE GeneratorExit\n\ntests/test_math_utils.py:96: GeneratorExit"}, "teardown": {"duration": 0.0002677120501175523, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_recursion_limit", "lineno": 97, "outcome": "failed", "keywords": ["test_recursion_limit", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019355001859366894, "outcome": "passed"}, "call": {"duration": 0.0001914440654218197, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 101, "message": "RecursionError: cannot set the recursion limit to 50 at the recursion depth 37: the limit is too low"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 101, "message": "RecursionError"}], "longrepr": "def test_recursion_limit():\n # Lower recursion limit to force RecursionError on deep recursion\n original_limit = sys.getrecursionlimit()\n> sys.setrecursionlimit(50)\nE RecursionError: cannot set the recursion limit to 50 at the recursion depth 37: the limit is too low\n\ntests/test_math_utils.py:101: RecursionError"}, "teardown": {"duration": 0.00023586000315845013, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "lineno": 108, "outcome": "failed", "keywords": ["test_malformed_code", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018673797603696585, "outcome": "passed"}, "call": {"duration": 0.00020275998394936323, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 111, "message": " File \"\", line 1\n def bad(:\n ^\nSyntaxError: invalid syntax"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 111, "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:111: SyntaxError"}, "teardown": {"duration": 0.00023639900609850883, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "lineno": 112, "outcome": "failed", "keywords": ["test_sys_exit", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019390101078897715, "outcome": "passed"}, "call": {"duration": 0.00017074402421712875, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 115, "message": "SystemExit: 1"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 115, "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:115: SystemExit"}, "teardown": {"duration": 0.00023257802240550518, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "lineno": 116, "outcome": "failed", "keywords": ["test_broken_function", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019231298938393593, "outcome": "passed"}, "call": {"duration": 0.00017310690600425005, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 120, "message": "TypeError: Broken function"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 121, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 120, "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:121: \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:120: TypeError"}, "teardown": {"duration": 0.00025596993509680033, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_import_error_patch", "lineno": 122, "outcome": "failed", "keywords": ["test_import_error_patch", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001832999987527728, "outcome": "passed"}, "call": {"duration": 0.0001967590069398284, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 128, "message": "ImportError: Simulated ImportError"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 133, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 128, "message": "ImportError"}], "longrepr": "def test_import_error_patch():\n # Patch import to simulate ImportError on specific module\n original_import = __import__\n def fake_import(name, *args, **kwargs):\n if name == \"fake_module\":\n raise ImportError(\"Simulated ImportError\")\n return original_import(name, *args, **kwargs)\n import builtins\n builtins.__import__, old_import = fake_import, builtins.__import__\n try:\n> __import__(\"fake_module\")\n\ntests/test_math_utils.py:133: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nname = 'fake_module', args = (), kwargs = {}\n\n def fake_import(name, *args, **kwargs):\n if name == \"fake_module\":\n> raise ImportError(\"Simulated ImportError\")\nE ImportError: Simulated ImportError\n\ntests/test_math_utils.py:128: ImportError"}, "teardown": {"duration": 0.00024674308951944113, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "lineno": 136, "outcome": "failed", "keywords": ["test_module_not_found_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019285304006189108, "outcome": "passed"}, "call": {"duration": 0.0005172230303287506, "outcome": "failed", "crash": {"path": "", "lineno": 973, "message": "ModuleNotFoundError: No module named 'non_existent_module_xyz'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 139, "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:139: \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.00024469406343996525, "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.00018616602756083012, "outcome": "passed"}, "call": {"duration": 0.0001707680057734251, "outcome": "passed"}, "teardown": {"duration": 0.00020040804520249367, "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.00017426407430320978, "outcome": "passed"}, "call": {"duration": 0.00017236301209777594, "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.00023974303621798754, "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.00018124200869351625, "outcome": "passed"}, "call": {"duration": 0.00016405002679675817, "outcome": "passed"}, "teardown": {"duration": 0.00020425894763320684, "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.00018127495422959328, "outcome": "passed"}, "call": {"duration": 0.00017647596541792154, "outcome": "passed"}, "teardown": {"duration": 0.00019547308329492807, "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.00016904296353459358, "outcome": "passed"}, "call": {"duration": 0.00017013400793075562, "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.00024395796936005354, "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.0001788460649549961, "outcome": "passed"}, "call": {"duration": 0.00017427699640393257, "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.00023479398805648088, "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.00017957400996237993, "outcome": "passed"}, "call": {"duration": 0.00016024906653910875, "outcome": "passed"}, "teardown": {"duration": 0.00019111600704491138, "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.00019345409236848354, "outcome": "passed"}, "call": {"duration": 0.0006304220296442509, "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.0002575049875304103, "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.0001809850800782442, "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": 1752581591.4885137, "duration": 0.7166731357574463, "exitcode": 2, "root": "/workspace/tligui_y/slic", "environment": {}, "summary": {"passed": 13, "failed": 32, "xfailed": 2, "total": 47, "collected": 47}, "collectors": [{"nodeid": "", "outcome": "passed", "result": [{"nodeid": ".", "type": "Dir"}]}, {"nodeid": "allure-results", "outcome": "passed", "result": []}, {"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": 21}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[1-5-6]", "type": "Function", "lineno": 21}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-7]", "type": "Function", "lineno": 21}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-5-8]", "type": "Function", "lineno": 21}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-6-9]", "type": "Function", "lineno": 21}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "type": "Function", "lineno": 34}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "type": "Function", "lineno": 38}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "type": "Function", "lineno": 42}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "type": "Function", "lineno": 47}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "type": "Function", "lineno": 51}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "type": "Function", "lineno": 55}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "type": "Function", "lineno": 59}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "type": "Function", "lineno": 65}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "type": "Function", "lineno": 69}, {"nodeid": "tests/test_math_utils.py::test_value_error", "type": "Function", "lineno": 73}, {"nodeid": "tests/test_math_utils.py::test_type_error", "type": "Function", "lineno": 77}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "type": "Function", "lineno": 81}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "type": "Function", "lineno": 85}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "type": "Function", "lineno": 89}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "type": "Function", "lineno": 93}, {"nodeid": "tests/test_math_utils.py::test_recursion_limit", "type": "Function", "lineno": 97}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "type": "Function", "lineno": 108}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "type": "Function", "lineno": 112}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "type": "Function", "lineno": 116}, {"nodeid": "tests/test_math_utils.py::test_import_error_patch", "type": "Function", "lineno": 122}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "type": "Function", "lineno": 136}]}, {"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": "allure-results", "type": "Dir"}, {"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.0035166579764336348, "outcome": "passed"}, "call": {"duration": 0.00043444905895739794, "outcome": "passed"}, "teardown": {"duration": 0.0014467650325968862, "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.0006216240581125021, "outcome": "passed"}, "call": {"duration": 0.000335944932885468, "outcome": "passed"}, "teardown": {"duration": 0.0006564119830727577, "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.00017793697770684958, "outcome": "passed"}, "call": {"duration": 0.00018180697225034237, "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.000240408000536263, "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.00018164294306188822, "outcome": "passed"}, "call": {"duration": 0.00019315292593091726, "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.0002374149626120925, "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.00034786900505423546, "outcome": "passed"}, "call": {"duration": 0.0002091319765895605, "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 0x7f6e48c4c5b0>\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.000664573977701366, "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.0003449729410931468, "outcome": "passed"}, "call": {"duration": 0.0031536229653283954, "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 0x7f6e48f3cd00>\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.0009655390167608857, "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.0002213449915871024, "outcome": "passed"}, "call": {"duration": 0.00020831299480050802, "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.0002631930401548743, "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.00039189099334180355, "outcome": "passed"}, "call": {"duration": 0.00021068996284157038, "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 0x7f6e48d5f0a0>\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.0006699179066345096, "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.0007124950643628836, "outcome": "passed"}, "call": {"duration": 0.000983349047601223, "outcome": "passed"}, "teardown": {"duration": 0.0006391720380634069, "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.00017927505541592836, "outcome": "passed"}, "call": {"duration": 0.00021297100465744734, "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.00024172698613256216, "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.00018465996254235506, "outcome": "passed"}, "call": {"duration": 0.0001866919919848442, "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.00024391594342887402, "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.00017841404769569635, "outcome": "passed"}, "call": {"duration": 0.00018785009160637856, "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.0002554419916123152, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[2-2-4]", "lineno": 21, "outcome": "passed", "keywords": ["test_addition_pass[2-2-4]", "parametrize", "pytestmark", "2-2-4", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0014690450625494123, "outcome": "passed"}, "call": {"duration": 0.00020131992641836405, "outcome": "passed"}, "teardown": {"duration": 0.0009286189451813698, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[1-5-6]", "lineno": 21, "outcome": "passed", "keywords": ["test_addition_pass[1-5-6]", "parametrize", "pytestmark", "1-5-6", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0005130680510774255, "outcome": "passed"}, "call": {"duration": 0.00017460098024457693, "outcome": "passed"}, "teardown": {"duration": 0.0008526029996573925, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-7]", "lineno": 21, "outcome": "passed", "keywords": ["test_addition_pass[3-4-7]", "parametrize", "pytestmark", "3-4-7", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0005159449065104127, "outcome": "passed"}, "call": {"duration": 0.00017443904653191566, "outcome": "passed"}, "teardown": {"duration": 0.0008400480728596449, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-5-8]", "lineno": 21, "outcome": "passed", "keywords": ["test_addition_pass[3-5-8]", "parametrize", "pytestmark", "3-5-8", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0005007770378142595, "outcome": "passed"}, "call": {"duration": 0.00017120502889156342, "outcome": "passed"}, "teardown": {"duration": 0.0009357610251754522, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-6-9]", "lineno": 21, "outcome": "passed", "keywords": ["test_addition_pass[3-6-9]", "parametrize", "pytestmark", "3-6-9", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.000506339012645185, "outcome": "passed"}, "call": {"duration": 0.00017191795632243156, "outcome": "passed"}, "teardown": {"duration": 0.000818928936496377, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "lineno": 34, "outcome": "failed", "keywords": ["test_addition_fail", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018845894373953342, "outcome": "passed"}, "call": {"duration": 0.0004388769157230854, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 37, "message": "assert 4 == 5\n + where 4 = addition(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 37, "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:37: AssertionError"}, "teardown": {"duration": 0.0002307329559698701, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "lineno": 38, "outcome": "failed", "keywords": ["test_division_zero", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001847880193963647, "outcome": "passed"}, "call": {"duration": 0.00018057599663734436, "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": 41, "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:41: \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.0002354480093345046, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "lineno": 42, "outcome": "xfailed", "keywords": ["test_multiply_xfail", "xfail", "pytestmark", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001942629460245371, "outcome": "passed"}, "call": {"duration": 0.0002812769962474704, "outcome": "skipped", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 46, "message": "assert 4 == 5\n + where 4 = multiply(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 46, "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:46: AssertionError"}, "teardown": {"duration": 0.0002498610410839319, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "lineno": 47, "outcome": "failed", "keywords": ["test_runtime_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019195396453142166, "outcome": "passed"}, "call": {"duration": 0.0001836859155446291, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 50, "message": "RuntimeError: Forced runtime error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 50, "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:50: RuntimeError"}, "teardown": {"duration": 0.00024699396453797817, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "lineno": 51, "outcome": "failed", "keywords": ["test_memory_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017965096049010754, "outcome": "passed"}, "call": {"duration": 0.00017398502677679062, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 54, "message": "MemoryError: Simulated memory error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 54, "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:54: MemoryError"}, "teardown": {"duration": 0.00023268593940883875, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "lineno": 55, "outcome": "failed", "keywords": ["test_timeout_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019755400717258453, "outcome": "passed"}, "call": {"duration": 0.0001733979443088174, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 58, "message": "TimeoutError: Simulated timeout error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 58, "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:58: TimeoutError"}, "teardown": {"duration": 0.0002358079655095935, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "lineno": 59, "outcome": "failed", "keywords": ["test_recursion_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017868191935122013, "outcome": "passed"}, "call": {"duration": 0.0010583270341157913, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 63, "message": "RecursionError: maximum recursion depth exceeded"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 64, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 63, "message": "in recursive"}, {"path": "tests/test_math_utils.py", "lineno": 63, "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:64: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \ntests/test_math_utils.py:63: in recursive\n return recursive()\ntests/test_math_utils.py:63: in recursive\n return recursive()\nE RecursionError: maximum recursion depth exceeded\n!!! Recursion detected (same locals & position)"}, "teardown": {"duration": 0.00023079500533640385, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "lineno": 65, "outcome": "failed", "keywords": ["test_floating_point_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018965790513902903, "outcome": "passed"}, "call": {"duration": 0.0001708799973130226, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 68, "message": "FloatingPointError: Simulated floating point error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 68, "message": "FloatingPointError"}], "longrepr": "def test_floating_point_error():\n # Manually raise FloatingPointError (rare in practice)\n> raise FloatingPointError(\"Simulated floating point error\")\nE FloatingPointError: Simulated floating point error\n\ntests/test_math_utils.py:68: FloatingPointError"}, "teardown": {"duration": 0.00023167498875409365, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "lineno": 69, "outcome": "failed", "keywords": ["test_floating_point_overflow", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001792130060493946, "outcome": "passed"}, "call": {"duration": 0.0001746600028127432, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 72, "message": "OverflowError: math range error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 72, "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:72: OverflowError"}, "teardown": {"duration": 0.00023158092517405748, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_value_error", "lineno": 73, "outcome": "failed", "keywords": ["test_value_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017838599160313606, "outcome": "passed"}, "call": {"duration": 0.00017434090841561556, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 76, "message": "ValueError: invalid literal for int() with base 10: 'invalid'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 76, "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:76: ValueError"}, "teardown": {"duration": 0.00022912805434316397, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_type_error", "lineno": 77, "outcome": "failed", "keywords": ["test_type_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017728598322719336, "outcome": "passed"}, "call": {"duration": 0.00018350908067077398, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 80, "message": "TypeError: 'int' object is not iterable"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 80, "message": "TypeError"}], "longrepr": "def test_type_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:80: TypeError"}, "teardown": {"duration": 0.0002423119731247425, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "lineno": 81, "outcome": "failed", "keywords": ["test_unhandled_exception", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017633195966482162, "outcome": "passed"}, "call": {"duration": 0.00017191004008054733, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 84, "message": "Exception: Generic unhandled exception"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 84, "message": "Exception"}], "longrepr": "def test_unhandled_exception():\n # Raises generic unhandled Exception\n> raise Exception(\"Generic unhandled exception\")\nE Exception: Generic unhandled exception\n\ntests/test_math_utils.py:84: Exception"}, "teardown": {"duration": 0.00022862199693918228, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "lineno": 85, "outcome": "failed", "keywords": ["test_custom_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018363399431109428, "outcome": "passed"}, "call": {"duration": 0.00017022097017616034, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 88, "message": "test_math_utils.CustomError: Custom error simulation"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 88, "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:88: CustomError"}, "teardown": {"duration": 0.00023138499818742275, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "lineno": 89, "outcome": "failed", "keywords": ["test_stop_iteration_direct", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001812119735404849, "outcome": "passed"}, "call": {"duration": 0.00017157697584480047, "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:92: StopIteration\n\nThe above exception was the direct cause of the following exception:\n\ncls = \nfunc = . at 0x7f6e48d40f70>\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.00033502199221402407, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "lineno": 93, "outcome": "failed", "keywords": ["test_generator_exit_direct", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00024464703164994717, "outcome": "passed"}, "call": {"duration": 0.0001863220240920782, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 96, "message": "GeneratorExit"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 96, "message": "GeneratorExit"}], "longrepr": "def test_generator_exit_direct():\n # Directly raise GeneratorExit exception\n> raise GeneratorExit()\nE GeneratorExit\n\ntests/test_math_utils.py:96: GeneratorExit"}, "teardown": {"duration": 0.000257113017141819, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_recursion_limit", "lineno": 97, "outcome": "failed", "keywords": ["test_recursion_limit", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018425099551677704, "outcome": "passed"}, "call": {"duration": 0.00017910602036863565, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 101, "message": "RecursionError: cannot set the recursion limit to 50 at the recursion depth 37: the limit is too low"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 101, "message": "RecursionError"}], "longrepr": "def test_recursion_limit():\n # Lower recursion limit to force RecursionError on deep recursion\n original_limit = sys.getrecursionlimit()\n> sys.setrecursionlimit(50)\nE RecursionError: cannot set the recursion limit to 50 at the recursion depth 37: the limit is too low\n\ntests/test_math_utils.py:101: RecursionError"}, "teardown": {"duration": 0.00024480000138282776, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "lineno": 108, "outcome": "failed", "keywords": ["test_malformed_code", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018217903561890125, "outcome": "passed"}, "call": {"duration": 0.00018679490312933922, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 111, "message": " File \"\", line 1\n def bad(:\n ^\nSyntaxError: invalid syntax"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 111, "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:111: SyntaxError"}, "teardown": {"duration": 0.0002417030045762658, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "lineno": 112, "outcome": "failed", "keywords": ["test_sys_exit", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001809659879654646, "outcome": "passed"}, "call": {"duration": 0.00017422297969460487, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 115, "message": "SystemExit: 1"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 115, "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:115: SystemExit"}, "teardown": {"duration": 0.0002322889631614089, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "lineno": 116, "outcome": "failed", "keywords": ["test_broken_function", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019171088933944702, "outcome": "passed"}, "call": {"duration": 0.00017822999507188797, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 120, "message": "TypeError: Broken function"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 121, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 120, "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:121: \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:120: TypeError"}, "teardown": {"duration": 0.00023769598919898272, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_import_error_patch", "lineno": 122, "outcome": "failed", "keywords": ["test_import_error_patch", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001842400524765253, "outcome": "passed"}, "call": {"duration": 0.00018165004439651966, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 128, "message": "ImportError: Simulated ImportError"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 133, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 128, "message": "ImportError"}], "longrepr": "def test_import_error_patch():\n # Patch import to simulate ImportError on specific module\n original_import = __import__\n def fake_import(name, *args, **kwargs):\n if name == \"fake_module\":\n raise ImportError(\"Simulated ImportError\")\n return original_import(name, *args, **kwargs)\n import builtins\n builtins.__import__, old_import = fake_import, builtins.__import__\n try:\n> __import__(\"fake_module\")\n\ntests/test_math_utils.py:133: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nname = 'fake_module', args = (), kwargs = {}\n\n def fake_import(name, *args, **kwargs):\n if name == \"fake_module\":\n> raise ImportError(\"Simulated ImportError\")\nE ImportError: Simulated ImportError\n\ntests/test_math_utils.py:128: ImportError"}, "teardown": {"duration": 0.0002662979532033205, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "lineno": 136, "outcome": "failed", "keywords": ["test_module_not_found_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018930609803646803, "outcome": "passed"}, "call": {"duration": 0.00044853403232991695, "outcome": "failed", "crash": {"path": "", "lineno": 973, "message": "ModuleNotFoundError: No module named 'non_existent_module_xyz'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 139, "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:139: \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.00024841504637151957, "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.00019069400150328875, "outcome": "passed"}, "call": {"duration": 0.00016670406330376863, "outcome": "passed"}, "teardown": {"duration": 0.00019386201165616512, "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.000169189996086061, "outcome": "passed"}, "call": {"duration": 0.00017127697356045246, "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.00023349106777459383, "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.00018229999113827944, "outcome": "passed"}, "call": {"duration": 0.00016205001156777143, "outcome": "passed"}, "teardown": {"duration": 0.00020074006170034409, "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.00017603300511837006, "outcome": "passed"}, "call": {"duration": 0.00018229999113827944, "outcome": "passed"}, "teardown": {"duration": 0.00019314500968903303, "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.00017974397633224726, "outcome": "passed"}, "call": {"duration": 0.0001731460215523839, "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.00022754305973649025, "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.00018849503248929977, "outcome": "passed"}, "call": {"duration": 0.00018655601888895035, "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.00022853701375424862, "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.0001857060706242919, "outcome": "passed"}, "call": {"duration": 0.00016247399616986513, "outcome": "passed"}, "teardown": {"duration": 0.00019130599685013294, "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.00018823996651917696, "outcome": "passed"}, "call": {"duration": 0.0005862459074705839, "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.0002510810736566782, "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.00017899100203067064, "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