diff --git a/ci-reports/markdown/TEST-REPORT.md b/ci-reports/markdown/TEST-REPORT.md
index b0d124a8..407291cd 100644
--- a/ci-reports/markdown/TEST-REPORT.md
+++ b/ci-reports/markdown/TEST-REPORT.md
@@ -5,11 +5,11 @@
πͺ΅ Full raw pytest log
-
+```
============================= 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, html-4.1.1, metadata-3.1.1, allure-pytest-2.13.5, 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, json-report-1.5.0, md-report-0.6.2
collected 72 items / 2 errors
tests/test_io_utils.py ..FFFFFF.F
@@ -93,7 +93,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 0x7f7c9bfeeb80>
+monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0a92d4b520>
def test_permission_error(monkeypatch):
# Patch open to raise PermissionError simulating access denial
@@ -117,7 +117,7 @@ E PermissionError: Permission denied
tests/test_io_utils.py:34: PermissionError
_____________________________ test_mock_open_error _____________________________
-monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7c9e158640>
+monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0a92d76550>
def test_mock_open_error(monkeypatch):
# Mock open() to raise IOError simulating read error
@@ -134,7 +134,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):
@@ -160,7 +160,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 0x7f7c9bddb7f0>
+monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0a92d76a30>
def test_os_error(monkeypatch):
# Patch os.remove to raise OSError simulating filesystem error
@@ -328,7 +328,7 @@ tests/test_math_utils.py:106: StopIteration
The above exception was the direct cause of the following exception:
cls =
-func = . at 0x7f7c9c3fb700>
+func = . at 0x7f0a928fb700>
when = 'call'
reraise = (, )
@@ -457,7 +457,7 @@ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
name = 'non_existent_module_xyz'
-import_ =
+import_ =
> ???
E ModuleNotFoundError: No module named 'non_existent_module_xyz'
@@ -562,17 +562,17 @@ ERROR tests/test_param.py::TestDynamic::test_sum_positive
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! KeyboardInterrupt !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
/workspace/tligui_y/slic/tests/test_string_utils.py:52: KeyboardInterrupt
(to show a full traceback on KeyboardInterrupt use --full-trace)
-=== 32 failed, 35 passed, 1 skipped, 2 xfailed, 1 warning, 3 errors in 0.75s ===
-
+=== 32 failed, 35 passed, 1 skipped, 2 xfailed, 1 warning, 3 errors in 0.77s ===
+```
---
# π§ͺ Test Report
-*Generated on 2025-07-17 12:42:02*
+*Generated on 2025-07-17 12:57:40*
## π§Ύ General Info
-- **duration**: 0.7456588745117188
+- **duration**: 0.7686643600463867
- **root**: /workspace/tligui_y/slic
- **environment**:
@@ -596,7 +596,7 @@ ERROR tests/test_param.py::TestDynamic::test_sum_positive
-π§ Function: test_read_file
+π§ Function: `test_read_file`
@@ -620,7 +620,7 @@ ERROR tests/test_param.py::TestDynamic::test_sum_positive
π Duration
```
-0.0030945749022066593
+0.003061530995182693
```
@@ -643,7 +643,7 @@ passed
π Duration
```
-0.00045655795838683844
+0.00040166592225432396
```
@@ -666,7 +666,7 @@ passed
π Duration
```
-0.00023347395472228527
+0.0002309569390490651
```
@@ -691,7 +691,7 @@ passed
-π§ Function: test_write_file
+π§ Function: `test_write_file`
@@ -715,7 +715,7 @@ passed
π Duration
```
-0.00045122706796973944
+0.0004485159879550338
```
@@ -738,7 +738,7 @@ passed
π Duration
```
-0.0002709140535444021
+0.0002946000313386321
```
@@ -761,7 +761,7 @@ passed
π Duration
```
-0.00015074899420142174
+0.00013904098886996508
```
@@ -786,7 +786,7 @@ passed
-π§ Function: test_write_file_readonly
+π§ Function: `test_write_file_readonly`
@@ -810,7 +810,7 @@ passed
π Duration
```
-0.0006322979461401701
+0.0007073919987305999
```
@@ -833,7 +833,7 @@ passed
π Duration
```
-0.0008573139784857631
+0.0009686429984867573
```
@@ -856,7 +856,7 @@ passed
π Duration
```
-0.00016357190907001495
+0.00015265005640685558
```
@@ -889,7 +889,7 @@ passed
-π§ Function: test_addition_pass
+π§ Function: `test_addition_pass`
@@ -917,7 +917,7 @@ expected: 4
π Duration
```
-0.00028897100128233433
+0.0003402769798412919
```
@@ -940,7 +940,7 @@ passed
π Duration
```
-0.00014517607633024454
+0.00015228299889713526
```
@@ -963,7 +963,7 @@ passed
π Duration
```
-0.0001516880001872778
+0.00016410311218351126
```
@@ -1008,7 +1008,7 @@ expected: 6
π Duration
```
-0.0002635400742292404
+0.00026776595041155815
```
@@ -1031,7 +1031,7 @@ passed
π Duration
```
-0.00013220403343439102
+0.00015462294686585665
```
@@ -1054,7 +1054,7 @@ passed
π Duration
```
-0.0001458890037611127
+0.00014649296645075083
```
@@ -1099,7 +1099,7 @@ expected: 7
π Duration
```
-0.000248664990067482
+0.00025113194715231657
```
@@ -1122,7 +1122,7 @@ passed
π Duration
```
-0.0001311770174652338
+0.0001401189947500825
```
@@ -1145,7 +1145,7 @@ passed
π Duration
```
-0.00013519299682229757
+0.00014662707690149546
```
@@ -1190,7 +1190,7 @@ expected: 8
π Duration
```
-0.000234995037317276
+0.0002509730402380228
```
@@ -1213,7 +1213,7 @@ passed
π Duration
```
-0.00013115000911056995
+0.0001332019455730915
```
@@ -1236,7 +1236,7 @@ passed
π Duration
```
-0.0001368920784443617
+0.00013469799887388945
```
@@ -1281,7 +1281,7 @@ expected: 9
π Duration
```
-0.0002592899836599827
+0.00024719990324229
```
@@ -1304,7 +1304,7 @@ passed
π Duration
```
-0.00012576894368976355
+0.00013244303409010172
```
@@ -1327,7 +1327,7 @@ passed
π Duration
```
-0.00013241998385637999
+0.00019871501717716455
```
@@ -1352,7 +1352,7 @@ passed
-π§ Function: test_addition_pass_id
+π§ Function: `test_addition_pass_id`
@@ -1380,7 +1380,7 @@ expected: 4
π Duration
```
-0.0002537210239097476
+0.00026122794952243567
```
@@ -1403,7 +1403,7 @@ passed
π Duration
```
-0.00012997398152947426
+0.00013164302799850702
```
@@ -1426,7 +1426,7 @@ passed
π Duration
```
-0.0001358760055154562
+0.00013964902609586716
```
@@ -1471,7 +1471,7 @@ expected: 6
π Duration
```
-0.00024325901176780462
+0.0002579230349510908
```
@@ -1494,7 +1494,7 @@ passed
π Duration
```
-0.00012497801799327135
+0.00012996303848922253
```
@@ -1517,7 +1517,7 @@ passed
π Duration
```
-0.00013121706433594227
+0.0001324209151789546
```
@@ -1562,7 +1562,7 @@ expected: 7
π Duration
```
-0.0002527909819036722
+0.00025008199736475945
```
@@ -1585,7 +1585,7 @@ passed
π Duration
```
-0.00013031100388616323
+0.00012540805619210005
```
@@ -1608,7 +1608,7 @@ passed
π Duration
```
-0.0001348840305581689
+0.00014230795204639435
```
@@ -1641,7 +1641,7 @@ passed
-π§ Function: test_basic_ids
+π§ Function: `test_basic_ids`
@@ -1667,7 +1667,7 @@ params: x: 1
π Duration
```
-0.00024215399753302336
+0.0002617130521684885
```
@@ -1690,7 +1690,7 @@ passed
π Duration
```
-0.0001407819800078869
+0.00015065399929881096
```
@@ -1713,7 +1713,7 @@ passed
π Duration
```
-0.00013018003664910793
+0.0001631900668144226
```
@@ -1756,7 +1756,7 @@ params: x: 2
π Duration
```
-0.00019932794384658337
+0.00019936100579798222
```
@@ -1779,7 +1779,7 @@ passed
π Duration
```
-0.00013893493451178074
+0.00013418507296591997
```
@@ -1802,7 +1802,7 @@ passed
π Duration
```
-0.0001254350645467639
+0.0001264300663024187
```
@@ -1827,7 +1827,7 @@ passed
-π§ Function: test_with_reason_and_marks
+π§ Function: `test_with_reason_and_marks`
@@ -1853,7 +1853,7 @@ params: x: 10
π Duration
```
-0.00018506695050746202
+0.00017676001880317926
```
@@ -1876,7 +1876,7 @@ passed
π Duration
```
-0.00012912496458739042
+0.00014559307601302862
```
@@ -1899,7 +1899,7 @@ passed
π Duration
```
-0.00011539401020854712
+0.00012384506408125162
```
@@ -1924,7 +1924,7 @@ passed
-π§ Function: test_multiple_positional_args
+π§ Function: `test_multiple_positional_args`
@@ -1951,7 +1951,7 @@ b: 2
π Duration
```
-0.00021801807451993227
+0.00023974699433892965
```
@@ -1974,7 +1974,7 @@ passed
π Duration
```
-0.0001294170506298542
+0.00014940695837140083
```
@@ -1997,7 +1997,7 @@ passed
π Duration
```
-0.00012675393372774124
+0.00013794400729238987
```
@@ -2041,7 +2041,7 @@ b: 4
π Duration
```
-0.00022769300267100334
+0.00020986096933484077
```
@@ -2064,7 +2064,7 @@ passed
π Duration
```
-0.00012728595174849033
+0.00014582695439457893
```
@@ -2087,7 +2087,7 @@ passed
π Duration
```
-0.00012939900625497103
+0.00013537402264773846
```
@@ -2112,7 +2112,7 @@ passed
-π§ Function: test_non_literal_with_id
+π§ Function: `test_non_literal_with_id`
@@ -2125,7 +2125,7 @@ passed
```
id: custom-obj
marks:
-params: {'data': }
+params: {'data': }
```
@@ -2138,7 +2138,7 @@ params: {'data': }
π Duration
```
-0.0001566710416227579
+0.00016870396211743355
```
@@ -2161,7 +2161,7 @@ passed
π Duration
```
-0.00012339907698333263
+0.00014169199857860804
```
@@ -2184,7 +2184,7 @@ passed
π Duration
```
-0.00011347199324518442
+0.0001256490359082818
```
@@ -2209,7 +2209,7 @@ passed
-π§ Function: test_timedistance_v1
+π§ Function: `test_timedistance_v1`
@@ -2235,7 +2235,7 @@ params: {'a': datetime.datetime(2001, 12, 12, 0, 0), 'b': datetime.datetime(2001
π Duration
```
-0.0002463760320097208
+0.00026894197799265385
```
@@ -2258,7 +2258,7 @@ passed
π Duration
```
-0.00012865697499364614
+0.00014270201791077852
```
@@ -2281,7 +2281,7 @@ passed
π Duration
```
-0.00013530906289815903
+0.00016119400970637798
```
@@ -2324,7 +2324,7 @@ params: {'a': datetime.datetime(2001, 12, 11, 0, 0), 'b': datetime.datetime(2001
π Duration
```
-0.00024029298219829798
+0.0002681460464373231
```
@@ -2347,7 +2347,7 @@ passed
π Duration
```
-0.00012802693527191877
+0.00013109506107866764
```
@@ -2370,7 +2370,7 @@ passed
π Duration
```
-0.00013867404777556658
+0.0001480280188843608
```
@@ -2395,7 +2395,7 @@ passed
-π§ Function: test_dynamic
+π§ Function: `test_dynamic`
@@ -2421,7 +2421,7 @@ params: val: 10
π Duration
```
-0.0001830519177019596
+0.00019332708325237036
```
@@ -2444,7 +2444,7 @@ passed
π Duration
```
-0.00012989796232432127
+0.00013750593643635511
```
@@ -2467,7 +2467,7 @@ passed
π Duration
```
-0.00011889799498021603
+0.00012976897414773703
```
@@ -2510,7 +2510,7 @@ params: val: 20
π Duration
```
-0.00016345398034900427
+0.00018239801283925772
```
@@ -2533,7 +2533,7 @@ passed
π Duration
```
-0.00012829992920160294
+0.00013742002192884684
```
@@ -2556,7 +2556,7 @@ passed
π Duration
```
-0.00011664198245853186
+0.00013528205454349518
```
@@ -2599,7 +2599,7 @@ params: val: 30
π Duration
```
-0.0001635699300095439
+0.00017375207971781492
```
@@ -2622,7 +2622,7 @@ passed
π Duration
```
-0.00012086809147149324
+0.00012700899969786406
```
@@ -2645,7 +2645,7 @@ passed
π Duration
```
-0.00011111004278063774
+0.00012178800534456968
```
@@ -2670,7 +2670,7 @@ passed
-π§ Function: test_element_type
+π§ Function: `test_element_type`
@@ -2696,7 +2696,7 @@ params: element: fire
π Duration
```
-0.00018057296983897686
+0.000185595010407269
```
@@ -2719,7 +2719,7 @@ passed
π Duration
```
-0.00012491503730416298
+0.00013192207552492619
```
@@ -2742,7 +2742,7 @@ passed
π Duration
```
-0.00011564698070287704
+0.00012424704618752003
```
@@ -2785,7 +2785,7 @@ params: element: water
π Duration
```
-0.00017015694174915552
+0.00017815292812883854
```
@@ -2808,7 +2808,7 @@ passed
π Duration
```
-0.00012139591854065657
+0.00012919306755065918
```
@@ -2831,7 +2831,7 @@ passed
π Duration
```
-0.00011556304525583982
+0.00012062094174325466
```
@@ -2874,7 +2874,7 @@ params: element: earth
π Duration
```
-0.00016361300367861986
+0.00017611810471862555
```
@@ -2897,7 +2897,7 @@ passed
π Duration
```
-0.00012301607057452202
+0.00013334793038666248
```
@@ -2920,7 +2920,7 @@ passed
π Duration
```
-0.00011423404794186354
+0.00012266100384294987
```
@@ -2945,7 +2945,7 @@ passed
-π§ Function: test_combination
+π§ Function: `test_combination`
@@ -2972,7 +2972,7 @@ x: 1
π Duration
```
-0.0002166170161217451
+0.00021067692432552576
```
@@ -2995,7 +2995,7 @@ passed
π Duration
```
-0.000128492945805192
+0.00012870400678366423
```
@@ -3018,7 +3018,7 @@ passed
π Duration
```
-0.00012786604929715395
+0.00013846298679709435
```
@@ -3062,7 +3062,7 @@ x: 2
π Duration
```
-0.00019811198581010103
+0.00022841000463813543
```
@@ -3085,7 +3085,7 @@ passed
π Duration
```
-0.00012375600636005402
+0.00013159599620848894
```
@@ -3108,7 +3108,7 @@ passed
π Duration
```
-0.00013050506822764874
+0.0001384878996759653
```
@@ -3152,7 +3152,7 @@ x: 1
π Duration
```
-0.0002045569708570838
+0.0002173910615965724
```
@@ -3175,7 +3175,7 @@ passed
π Duration
```
-0.00012367591261863708
+0.0001379289897158742
```
@@ -3198,7 +3198,7 @@ passed
π Duration
```
-0.0001215559896081686
+0.00013272708747535944
```
@@ -3242,7 +3242,7 @@ x: 2
π Duration
```
-0.0002129790373146534
+0.0002061250852420926
```
@@ -3265,7 +3265,7 @@ passed
π Duration
```
-0.00012761703692376614
+0.00014073296915739775
```
@@ -3288,7 +3288,7 @@ passed
π Duration
```
-0.0001256139948964119
+0.00015582703053951263
```
@@ -3313,7 +3313,7 @@ passed
-π§ Function: test_indirect_fixture
+π§ Function: `test_indirect_fixture`
@@ -3339,7 +3339,7 @@ params: complex_setup: 1
π Duration
```
-0.0001580060925334692
+0.00018170604016631842
```
@@ -3362,7 +3362,7 @@ passed
π Duration
```
-0.0001302680466324091
+0.00014184904284775257
```
@@ -3385,7 +3385,7 @@ passed
π Duration
```
-0.00027987302746623755
+0.00026123097632080317
```
@@ -3428,7 +3428,7 @@ params: complex_setup: 2
π Duration
```
-0.00018331094179302454
+0.0002087079919874668
```
@@ -3451,7 +3451,7 @@ passed
π Duration
```
-0.00013011193368583918
+0.00015469209756702185
```
@@ -3474,7 +3474,7 @@ passed
π Duration
```
-0.00011838495265692472
+0.0001297489507123828
```
@@ -3507,7 +3507,7 @@ passed
-π§ Function: test_uppercase_normal
+π§ Function: `test_uppercase_normal`
@@ -3531,7 +3531,7 @@ passed
π Duration
```
-0.00012968492228537798
+0.00014512601774185896
```
@@ -3554,7 +3554,7 @@ passed
π Duration
```
-0.00014042598195374012
+0.0001521629747003317
```
@@ -3577,7 +3577,7 @@ passed
π Duration
```
-0.00010028202086687088
+0.00011778890620917082
```
@@ -3602,7 +3602,7 @@ passed
-π§ Function: test_reverse_string
+π§ Function: `test_reverse_string`
@@ -3626,7 +3626,7 @@ passed
π Duration
```
-0.00011655106209218502
+0.00012179696932435036
```
@@ -3649,7 +3649,7 @@ passed
π Duration
```
-0.0001367910299450159
+0.00015486497431993484
```
@@ -3672,7 +3672,7 @@ passed
π Duration
```
-9.896396659314632e-05
+0.0001054280437529087
```
@@ -3697,7 +3697,7 @@ passed
-π§ Function: test_warning_emit
+π§ Function: `test_warning_emit`
@@ -3721,7 +3721,7 @@ passed
π Duration
```
-0.00010447704698890448
+0.0001131650060415268
```
@@ -3744,7 +3744,7 @@ passed
π Duration
```
-0.0001405010698363185
+0.00016114593017846346
```
@@ -3767,7 +3767,7 @@ passed
π Duration
```
-9.625300299376249e-05
+9.896804112941027e-05
```
@@ -3792,7 +3792,7 @@ passed
-π§ Function: test_import_warning
+π§ Function: `test_import_warning`
@@ -3816,7 +3816,7 @@ passed
π Duration
```
-0.00011959206312894821
+0.00012189196422696114
```
@@ -3839,7 +3839,7 @@ passed
π Duration
```
-0.00014226697385311127
+0.000153709901496768
```
@@ -3862,7 +3862,7 @@ passed
π Duration
```
-0.00010301300790160894
+0.00010752503294497728
```
@@ -3887,7 +3887,7 @@ passed
-π§ Function: test_keyboard_interrupt_direct
+π§ Function: `test_keyboard_interrupt_direct`
@@ -3911,7 +3911,7 @@ passed
π Duration
```
-0.00011627702042460442
+0.00013420695904642344
```
@@ -3952,7 +3952,7 @@ passed
-π§ Function: test_cause_io_error
+π§ Function: `test_cause_io_error`
@@ -3976,7 +3976,7 @@ passed
π Duration
```
-0.00011305790394544601
+0.00011115300003439188
```
@@ -3999,7 +3999,7 @@ passed
π Duration
```
-0.00014978903345763683
+0.00016092800069600344
```
@@ -4070,7 +4070,7 @@ functions/io_utils.py:10: OSError
π Duration
```
-0.00013967498671263456
+0.00013689196202903986
```
@@ -4095,7 +4095,7 @@ passed
-π§ Function: test_file_not_found
+π§ Function: `test_file_not_found`
@@ -4119,7 +4119,7 @@ passed
π Duration
```
-0.0001188049791380763
+0.00011640496086329222
```
@@ -4142,7 +4142,7 @@ passed
π Duration
```
-0.0001938649220392108
+0.00017964199651032686
```
@@ -4215,7 +4215,7 @@ functions/io_utils.py:2: FileNotFoundError
π Duration
```
-0.0001453569857403636
+0.000135085079818964
```
@@ -4240,7 +4240,7 @@ passed
-π§ Function: test_permission_error
+π§ Function: `test_permission_error`
@@ -4264,7 +4264,7 @@ passed
π Duration
```
-0.00019895797595381737
+0.000195822911337018
```
@@ -4287,7 +4287,7 @@ passed
π Duration
```
-0.0001764290500432253
+0.00017941906116902828
```
@@ -4337,7 +4337,7 @@ message: PermissionError
π Longrepr
```
-monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7c9bfeeb80>
+monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0a92d4b520>
def test_permission_error(monkeypatch):
# Patch open to raise PermissionError simulating access denial
@@ -4371,7 +4371,7 @@ tests/test_io_utils.py:34: PermissionError
π Duration
```
-0.0001687180483713746
+0.0001630149781703949
```
@@ -4396,7 +4396,7 @@ passed
-π§ Function: test_mock_open_error
+π§ Function: `test_mock_open_error`
@@ -4420,7 +4420,7 @@ passed
π Duration
```
-0.0001890889834612608
+0.0001875460147857666
```
@@ -4443,7 +4443,7 @@ passed
π Duration
```
-0.0032746070064604282
+0.0031941679771989584
```
@@ -4496,7 +4496,7 @@ message: OSError
π Longrepr
```
-monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7c9e158640>
+monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0a92d76550>
def test_mock_open_error(monkeypatch):
# Mock open() to raise IOError simulating read error
@@ -4513,7 +4513,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):
@@ -4539,7 +4539,7 @@ E OSError: Mocked IOError
π Duration
```
-0.00026654102839529514
+0.00032785895746201277
```
@@ -4564,7 +4564,7 @@ passed
-π§ Function: test_file_handle_closed_error
+π§ Function: `test_file_handle_closed_error`
@@ -4588,7 +4588,7 @@ passed
π Duration
```
-0.00013529998250305653
+0.00014014600310474634
```
@@ -4611,7 +4611,7 @@ passed
π Duration
```
-0.00018338696099817753
+0.00019203894771635532
```
@@ -4675,7 +4675,7 @@ tests/test_io_utils.py:50: ValueError
π Duration
```
-0.00017184496391564608
+0.0002131899818778038
```
@@ -4700,7 +4700,7 @@ passed
-π§ Function: test_os_error
+π§ Function: `test_os_error`
@@ -4724,7 +4724,7 @@ passed
π Duration
```
-0.00022960396017879248
+0.0002949860645458102
```
@@ -4747,7 +4747,7 @@ passed
π Duration
```
-0.00018053699750453234
+0.00020159303676337004
```
@@ -4794,7 +4794,7 @@ message: OSError
π Longrepr
```
-monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7c9bddb7f0>
+monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0a92d76a30>
def test_os_error(monkeypatch):
# Patch os.remove to raise OSError simulating filesystem error
@@ -4825,7 +4825,7 @@ tests/test_io_utils.py:55: OSError
π Duration
```
-0.00018866301979869604
+0.00020143704023212194
```
@@ -4850,7 +4850,7 @@ passed
-π§ Function: test_file_not_found_error
+π§ Function: `test_file_not_found_error`
@@ -4874,7 +4874,7 @@ passed
π Duration
```
-0.00013521395158022642
+0.00012058299034833908
```
@@ -4897,7 +4897,7 @@ passed
π Duration
```
-0.00017561798449605703
+0.00017363904044032097
```
@@ -4959,7 +4959,7 @@ tests/test_io_utils.py:69: FileNotFoundError
π Duration
```
-0.00014276406727731228
+0.00017369992565363646
```
@@ -4992,7 +4992,7 @@ passed
-π§ Function: test_broken
+π§ Function: `test_broken`
@@ -5016,7 +5016,7 @@ passed
π Duration
```
-0.00013235700316727161
+0.00013829104136675596
```
@@ -5039,7 +5039,7 @@ passed
π Duration
```
-0.00016230996698141098
+0.00016320100985467434
```
@@ -5101,7 +5101,7 @@ tests/test_math_utils.py:16: NameError
π Duration
```
-0.00013918790500611067
+0.00014692696277052164
```
@@ -5126,7 +5126,7 @@ passed
-π§ Function: test_call_missing_function
+π§ Function: `test_call_missing_function`
@@ -5150,7 +5150,7 @@ passed
π Duration
```
-0.00011965807061642408
+0.00016260810662060976
```
@@ -5173,7 +5173,7 @@ passed
π Duration
```
-0.00015563599299639463
+0.0001658709952607751
```
@@ -5235,7 +5235,7 @@ tests/test_math_utils.py:20: AttributeError
π Duration
```
-0.00014486501459032297
+0.00015413598157465458
```
@@ -5260,7 +5260,7 @@ passed
-π§ Function: test_addition_fail
+π§ Function: `test_addition_fail`
@@ -5284,7 +5284,7 @@ passed
π Duration
```
-0.00011326407548040152
+0.00013091193977743387
```
@@ -5307,7 +5307,7 @@ passed
π Duration
```
-0.00039576098788529634
+0.0004954959731549025
```
@@ -5371,7 +5371,7 @@ tests/test_math_utils.py:51: AssertionError
π Duration
```
-0.00013215793296694756
+0.00015981006436049938
```
@@ -5396,7 +5396,7 @@ passed
-π§ Function: test_division_zero
+π§ Function: `test_division_zero`
@@ -5420,7 +5420,7 @@ passed
π Duration
```
-0.0001144979614764452
+0.00012887094635516405
```
@@ -5443,7 +5443,7 @@ passed
π Duration
```
-0.0001487260451540351
+0.00017330003902316093
```
@@ -5516,7 +5516,7 @@ functions/math_utils.py:5: ZeroDivisionError
π Duration
```
-0.0001357960281893611
+0.00015743891708552837
```
@@ -5541,7 +5541,7 @@ passed
-π§ Function: test_runtime_error
+π§ Function: `test_runtime_error`
@@ -5565,7 +5565,7 @@ passed
π Duration
```
-0.00012192002031952143
+0.00013021891936659813
```
@@ -5588,7 +5588,7 @@ passed
π Duration
```
-0.00014745292719453573
+0.00016132695600390434
```
@@ -5650,7 +5650,7 @@ tests/test_math_utils.py:64: RuntimeError
π Duration
```
-0.00013503700029104948
+0.00017315102741122246
```
@@ -5675,7 +5675,7 @@ passed
-π§ Function: test_memory_error
+π§ Function: `test_memory_error`
@@ -5699,7 +5699,7 @@ passed
π Duration
```
-0.00011871790047734976
+0.00013186107389628887
```
@@ -5722,7 +5722,7 @@ passed
π Duration
```
-0.00014581100549548864
+0.00018722598906606436
```
@@ -5784,7 +5784,7 @@ tests/test_math_utils.py:68: MemoryError
π Duration
```
-0.00013305200263857841
+0.00016550999134778976
```
@@ -5809,7 +5809,7 @@ passed
-π§ Function: test_timeout_error
+π§ Function: `test_timeout_error`
@@ -5833,7 +5833,7 @@ passed
π Duration
```
-0.0001157029764726758
+0.00014301505871117115
```
@@ -5856,7 +5856,7 @@ passed
π Duration
```
-0.0001429020194336772
+0.00015760294627398252
```
@@ -5918,7 +5918,7 @@ tests/test_math_utils.py:72: TimeoutError
π Duration
```
-0.000136462040245533
+0.00014451099559664726
```
@@ -5943,7 +5943,7 @@ passed
-π§ Function: test_recursion_error
+π§ Function: `test_recursion_error`
@@ -5967,7 +5967,7 @@ passed
π Duration
```
-0.0001185110304504633
+0.0001292990054935217
```
@@ -5990,7 +5990,7 @@ passed
π Duration
```
-0.0007487450493499637
+0.0009431469952687621
```
@@ -6066,7 +6066,7 @@ E RecursionError: maximum recursion depth exceeded
π Duration
```
-0.0001426819944754243
+0.0001559760421514511
```
@@ -6091,7 +6091,7 @@ passed
-π§ Function: test_floating_point_error
+π§ Function: `test_floating_point_error`
@@ -6115,7 +6115,7 @@ passed
π Duration
```
-0.00012207799591124058
+0.0001294909743592143
```
@@ -6138,7 +6138,7 @@ passed
π Duration
```
-0.000149055034853518
+0.00016297795809805393
```
@@ -6200,7 +6200,7 @@ tests/test_math_utils.py:82: FloatingPointError
π Duration
```
-0.00013744004536420107
+0.0001409549731761217
```
@@ -6225,7 +6225,7 @@ passed
-π§ Function: test_floating_point_overflow
+π§ Function: `test_floating_point_overflow`
@@ -6249,7 +6249,7 @@ passed
π Duration
```
-0.00012035807594656944
+0.00013170798774808645
```
@@ -6272,7 +6272,7 @@ passed
π Duration
```
-0.00016589800361543894
+0.0001817760057747364
```
@@ -6334,7 +6334,7 @@ tests/test_math_utils.py:86: OverflowError
π Duration
```
-0.00013628893066197634
+0.00015668000560253859
```
@@ -6359,7 +6359,7 @@ passed
-π§ Function: test_value_error
+π§ Function: `test_value_error`
@@ -6383,7 +6383,7 @@ passed
π Duration
```
-0.000115199014544487
+0.00012792192865163088
```
@@ -6406,7 +6406,7 @@ passed
π Duration
```
-0.00014984700828790665
+0.00016239506658166647
```
@@ -6468,7 +6468,7 @@ tests/test_math_utils.py:90: ValueError
π Duration
```
-0.00013879104517400265
+0.0001453660661354661
```
@@ -6493,7 +6493,7 @@ passed
-π§ Function: test_wrong_argument_error
+π§ Function: `test_wrong_argument_error`
@@ -6517,7 +6517,7 @@ passed
π Duration
```
-0.00011630705557763577
+0.00012796197552233934
```
@@ -6540,7 +6540,7 @@ passed
π Duration
```
-0.00014825700782239437
+0.00015692110173404217
```
@@ -6602,7 +6602,7 @@ tests/test_math_utils.py:94: TypeError
π Duration
```
-0.00013706099707633257
+0.00014484603889286518
```
@@ -6627,7 +6627,7 @@ passed
-π§ Function: test_unhandled_exception
+π§ Function: `test_unhandled_exception`
@@ -6651,7 +6651,7 @@ passed
π Duration
```
-0.00012199499178677797
+0.00012910098303109407
```
@@ -6674,7 +6674,7 @@ passed
π Duration
```
-0.000146702048368752
+0.0001633589854463935
```
@@ -6736,7 +6736,7 @@ tests/test_math_utils.py:98: Exception
π Duration
```
-0.0001380089670419693
+0.00014827994164079428
```
@@ -6761,7 +6761,7 @@ passed
-π§ Function: test_custom_error
+π§ Function: `test_custom_error`
@@ -6785,7 +6785,7 @@ passed
π Duration
```
-0.00012132199481129646
+0.000127198058180511
```
@@ -6808,7 +6808,7 @@ passed
π Duration
```
-0.00015873601660132408
+0.0001688649645075202
```
@@ -6870,7 +6870,7 @@ tests/test_math_utils.py:102: CustomError
π Duration
```
-0.0001377440057694912
+0.00015202700160443783
```
@@ -6895,7 +6895,7 @@ passed
-π§ Function: test_stop_iteration_direct
+π§ Function: `test_stop_iteration_direct`
@@ -6919,7 +6919,7 @@ passed
π Duration
```
-0.00012033595703542233
+0.00012734101619571447
```
@@ -6942,7 +6942,7 @@ passed
π Duration
```
-0.000149609986692667
+0.0001584240235388279
```
@@ -7026,7 +7026,7 @@ tests/test_math_utils.py:106: StopIteration
The above exception was the direct cause of the following exception:
cls =
-func = . at 0x7f7c9c3fb700>
+func = . at 0x7f0a928fb700>
when = 'call'
reraise = (, )
@@ -7098,7 +7098,7 @@ E RuntimeError: generator raised StopIteration
π Duration
```
-0.0002125550527125597
+0.0002604519249871373
```
@@ -7123,7 +7123,7 @@ passed
-π§ Function: test_generator_exit_direct
+π§ Function: `test_generator_exit_direct`
@@ -7147,7 +7147,7 @@ passed
π Duration
```
-0.00013530196156352758
+0.000176700996235013
```
@@ -7170,7 +7170,7 @@ passed
π Duration
```
-0.00016580300871282816
+0.00018002605065703392
```
@@ -7232,7 +7232,7 @@ tests/test_math_utils.py:110: GeneratorExit
π Duration
```
-0.0001733059762045741
+0.00018354994244873524
```
@@ -7257,7 +7257,7 @@ passed
-π§ Function: test_malformed_code
+π§ Function: `test_malformed_code`
@@ -7281,7 +7281,7 @@ passed
π Duration
```
-0.0001369889359921217
+0.00015007692854851484
```
@@ -7304,7 +7304,7 @@ passed
π Duration
```
-0.00016528996638953686
+0.00017871602904051542
```
@@ -7372,7 +7372,7 @@ tests/test_math_utils.py:114: SyntaxError
π Duration
```
-0.00015739502850919962
+0.0001655110390856862
```
@@ -7397,7 +7397,7 @@ passed
-π§ Function: test_sys_exit
+π§ Function: `test_sys_exit`
@@ -7421,7 +7421,7 @@ passed
π Duration
```
-0.00012365798465907574
+0.00013621198013424873
```
@@ -7444,7 +7444,7 @@ passed
π Duration
```
-0.00015858199913054705
+0.00016006897203624249
```
@@ -7506,7 +7506,7 @@ tests/test_math_utils.py:118: SystemExit
π Duration
```
-0.00015377101954072714
+0.0001537570497021079
```
@@ -7531,7 +7531,7 @@ passed
-π§ Function: test_broken_function
+π§ Function: `test_broken_function`
@@ -7555,7 +7555,7 @@ passed
π Duration
```
-0.0001291430089622736
+0.00012668000999838114
```
@@ -7578,7 +7578,7 @@ passed
π Duration
```
-0.00016004894860088825
+0.00017143308650702238
```
@@ -7653,7 +7653,7 @@ tests/test_math_utils.py:123: TypeError
π Duration
```
-0.00016661197878420353
+0.000167321995832026
```
@@ -7678,7 +7678,7 @@ passed
-π§ Function: test_import_error
+π§ Function: `test_import_error`
@@ -7702,7 +7702,7 @@ passed
π Duration
```
-0.00014334800653159618
+0.0001259640557691455
```
@@ -7725,7 +7725,7 @@ passed
π Duration
```
-0.000163770979270339
+0.000156253925524652
```
@@ -7786,7 +7786,7 @@ tests/test_math_utils.py:127: ImportError
π Duration
```
-0.0001576520735397935
+0.00014695292338728905
```
@@ -7811,7 +7811,7 @@ passed
-π§ Function: test_module_not_found_error
+π§ Function: `test_module_not_found_error`
@@ -7835,7 +7835,7 @@ passed
π Duration
```
-0.00012506800703704357
+0.0001394529826939106
```
@@ -7858,7 +7858,7 @@ passed
π Duration
```
-0.000478317029774189
+0.0005187669303268194
```
@@ -7929,7 +7929,7 @@ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
name = 'non_existent_module_xyz'
-import_ =
+import_ =
> ???
E ModuleNotFoundError: No module named 'non_existent_module_xyz'
@@ -7947,7 +7947,7 @@ E ModuleNotFoundError: No module named 'non_existent_module_xyz'
π Duration
```
-0.00016295909881591797
+0.00015894498210400343
```
@@ -7980,7 +7980,7 @@ passed
-π§ Function: test_addition
+π§ Function: `test_addition`
@@ -8004,7 +8004,7 @@ passed
π Duration
```
-0.00011859298683702946
+0.00013034406583756208
```
@@ -8027,7 +8027,7 @@ passed
π Duration
```
-0.00015351001638919115
+0.00016851199325174093
```
@@ -8091,7 +8091,7 @@ tests/test_param.py:107: NameError
π Duration
```
-0.00014142808504402637
+0.0001569989835843444
```
@@ -8124,7 +8124,7 @@ passed
-π§ Function: test_uppercase_type_error
+π§ Function: `test_uppercase_type_error`
@@ -8148,7 +8148,7 @@ passed
π Duration
```
-0.00011451297905296087
+0.00011172494851052761
```
@@ -8171,7 +8171,7 @@ passed
π Duration
```
-0.00014382100198417902
+0.00015274202451109886
```
@@ -8245,7 +8245,7 @@ functions/string_utils.py:3: TypeError
π Duration
```
-0.000135448994114995
+0.00014208396896719933
```
@@ -8270,7 +8270,7 @@ passed
-π§ Function: test_unicode_decode_error
+π§ Function: `test_unicode_decode_error`
@@ -8294,7 +8294,7 @@ passed
π Duration
```
-0.00011937599629163742
+0.00011881999671459198
```
@@ -8317,7 +8317,7 @@ passed
π Duration
```
-0.00014612905215471983
+0.0001722599845379591
```
@@ -8379,7 +8379,7 @@ tests/test_string_utils.py:28: UnicodeDecodeError
π Duration
```
-0.00013408297672867775
+0.0001391660189256072
```
@@ -8404,7 +8404,7 @@ passed
-π§ Function: test_unicode_decode_surrogateescape
+π§ Function: `test_unicode_decode_surrogateescape`
@@ -8428,7 +8428,7 @@ passed
π Duration
```
-0.00011775200255215168
+0.00012017902918159962
```
@@ -8451,7 +8451,7 @@ passed
π Duration
```
-0.00016237609088420868
+0.000166269950568676
```
@@ -8513,7 +8513,7 @@ tests/test_string_utils.py:32: UnicodeDecodeError
π Duration
```
-0.00013377901632338762
+0.000136653077788651
```
@@ -8554,7 +8554,7 @@ passed
-π§ Function: test_multiply_xfail
+π§ Function: `test_multiply_xfail`
@@ -8578,7 +8578,7 @@ passed
π Duration
```
-0.00013073708396404982
+0.00015089497901499271
```
@@ -8601,7 +8601,7 @@ passed
π Duration
```
-0.0002562359441071749
+0.0003022280288860202
```
@@ -8666,7 +8666,7 @@ tests/test_math_utils.py:60: AssertionError
π Duration
```
-0.00013726495672017336
+0.0001838579773902893
```
@@ -8699,7 +8699,7 @@ passed
-π§ Function: test_xfail_uppercase_digits
+π§ Function: `test_xfail_uppercase_digits`
@@ -8723,7 +8723,7 @@ passed
π Duration
```
-0.00011613895185291767
+0.00013186491560190916
```
@@ -8746,7 +8746,7 @@ passed
π Duration
```
-0.0005602469900622964
+0.0006662909872829914
```
@@ -8817,7 +8817,7 @@ tests/test_string_utils.py:41: AssertionError
π Duration
```
-0.000133957015350461
+0.00013853597920387983
```
@@ -8858,7 +8858,7 @@ passed
-π§ Function: test_with_reason_and_marks
+π§ Function: `test_with_reason_and_marks`
@@ -8882,7 +8882,7 @@ passed
π Duration
```
-0.00022856297437101603
+0.00023672799579799175
```
@@ -8915,7 +8915,7 @@ skipped
π Duration
```
-0.00011827400885522366
+0.00012518500443547964
```
@@ -8956,7 +8956,7 @@ passed
-π§ Function: TestDynamic
+π§ Function: `TestDynamic`
@@ -8980,7 +8980,7 @@ passed
π Duration
```
-0.00014172005467116833
+0.0001716669648885727
```
@@ -9019,7 +9019,7 @@ E fixture 'x' not found
π Duration
```
-0.00013289705384522676
+0.0001639300025999546
```
@@ -9059,14 +9059,14 @@ passed
β
-- **Outcome:** passed
+- **Outcome:** `passed`
- **Details:**
-
+```
result:
nodeid: .
type: Dir
-
+```
@@ -9083,9 +9083,9 @@ type: Dir
β
ci-reports
-- **Outcome:** passed
+- **Outcome:** `passed`
- **Details:**
-
+```
result:
nodeid: ci-reports/allure
type: Dir
@@ -9094,7 +9094,7 @@ type: Dir
nodeid: ci-reports/markdown
type: Dir
-
+```
@@ -9103,9 +9103,9 @@ type: Dir
β
ci-reports/allure
-- **Outcome:** passed
+- **Outcome:** `passed`
- **Details:**
-
+```
result:
nodeid: ci-reports/allure/data
type: Dir
@@ -9118,7 +9118,7 @@ type: Dir
nodeid: ci-reports/allure/widgets
type: Dir
-
+```
@@ -9127,13 +9127,13 @@ type: Dir
β
ci-reports/allure/data
-- **Outcome:** passed
+- **Outcome:** `passed`
- **Details:**
-
+```
result:
-
+```
@@ -9142,13 +9142,13 @@ result:
β
ci-reports/allure/export
-- **Outcome:** passed
+- **Outcome:** `passed`
- **Details:**
-
+```
result:
-
+```
@@ -9157,13 +9157,13 @@ result:
β
ci-reports/allure/history
-- **Outcome:** passed
+- **Outcome:** `passed`
- **Details:**
-
+```
result:
-
+```
@@ -9172,9 +9172,9 @@ result:
β
ci-reports/allure/plugin
-- **Outcome:** passed
+- **Outcome:** `passed`
- **Details:**
-
+```
result:
nodeid: ci-reports/allure/plugin/behaviors
type: Dir
@@ -9183,7 +9183,7 @@ type: Dir
nodeid: ci-reports/allure/plugin/screen-diff
type: Dir
-
+```
@@ -9192,13 +9192,13 @@ type: Dir
β
ci-reports/allure/plugin/behaviors
-- **Outcome:** passed
+- **Outcome:** `passed`
- **Details:**
-
+```
result:
-
+```
@@ -9207,13 +9207,13 @@ result:
β
ci-reports/allure/plugin/packages
-- **Outcome:** passed
+- **Outcome:** `passed`
- **Details:**
-
+```
result:
-
+```
@@ -9222,13 +9222,13 @@ result:
β
ci-reports/allure/plugin/screen-diff
-- **Outcome:** passed
+- **Outcome:** `passed`
- **Details:**
-
+```
result:
-
+```
@@ -9237,13 +9237,13 @@ result:
β
ci-reports/allure/widgets
-- **Outcome:** passed
+- **Outcome:** `passed`
- **Details:**
-
+```
result:
-
+```
@@ -9252,13 +9252,13 @@ result:
β
ci-reports/coverage
-- **Outcome:** passed
+- **Outcome:** `passed`
- **Details:**
-
+```
result:
-
+```
@@ -9267,13 +9267,13 @@ result:
β
ci-reports/markdown
-- **Outcome:** passed
+- **Outcome:** `passed`
- **Details:**
-
+```
result:
-
+```
@@ -9290,13 +9290,13 @@ result:
β
functions
-- **Outcome:** passed
+- **Outcome:** `passed`
- **Details:**
-
+```
result:
-
+```
@@ -9313,9 +9313,9 @@ result:
β
tests
-- **Outcome:** passed
+- **Outcome:** `passed`
- **Details:**
-
+```
result:
nodeid: tests/test_broken_fct.py
type: Module
@@ -9330,7 +9330,7 @@ type: Module
nodeid: tests/test_string_utils.py
type: Module
-
+```
@@ -9339,9 +9339,9 @@ type: Module
β tests/test_broken_fct.py
-- **Outcome:** failed
+- **Outcome:** `failed`
- **Details:**
-
+```
result:
@@ -9371,7 +9371,7 @@ E def test_valid_2():
E ^
E SyntaxError: invalid syntax
-
+```
@@ -9380,9 +9380,9 @@ E SyntaxError: invalid syntax
β tests/test_collector_error.py
-- **Outcome:** failed
+- **Outcome:** `failed`
- **Details:**
-
+```
result:
@@ -9396,7 +9396,7 @@ tests/test_collector_error.py:1: in
from no_existing_module.math_utils import *
E ModuleNotFoundError: No module named 'no_existing_module'
-
+```
@@ -9405,9 +9405,9 @@ E ModuleNotFoundError: No module named 'no_existing_module'
β
tests/test_io_utils.py
-- **Outcome:** passed
+- **Outcome:** `passed`
- **Details:**
-
+```
result:
nodeid: tests/test_io_utils.py::test_read_file
type: Function
@@ -9440,7 +9440,7 @@ nodeid: tests/test_io_utils.py::test_file_not_found_error
type: Function
lineno: 66
-
+```
@@ -9449,9 +9449,9 @@ lineno: 66
β
tests/test_math_utils.py
-- **Outcome:** passed
+- **Outcome:** `passed`
- **Details:**
-
+```
result:
nodeid: tests/test_math_utils.py::test_broken
type: Function
@@ -9544,7 +9544,7 @@ nodeid: tests/test_math_utils.py::test_module_not_found_error
type: Function
lineno: 128
-
+```
@@ -9553,9 +9553,9 @@ lineno: 128
β
tests/test_param.py
-- **Outcome:** passed
+- **Outcome:** `passed`
- **Details:**
-
+```
result:
nodeid: tests/test_param.py::test_basic_ids[one]
type: Function
@@ -9626,7 +9626,7 @@ nodeid: tests/test_param.py::test_addition
type: Function
lineno: 104
-
+```
@@ -9635,15 +9635,15 @@ lineno: 104
β
tests/test_param.py::TestDynamic
-- **Outcome:** passed
+- **Outcome:** `passed`
- **Details:**
-
+```
result:
nodeid: tests/test_param.py::TestDynamic::test_sum_positive
type: Function
lineno: 70
-
+```
@@ -9652,9 +9652,9 @@ lineno: 70
β
tests/test_string_utils.py
-- **Outcome:** passed
+- **Outcome:** `passed`
- **Details:**
-
+```
result:
nodeid: tests/test_string_utils.py::test_uppercase_normal
type: Function
@@ -9684,7 +9684,7 @@ nodeid: tests/test_string_utils.py::test_keyboard_interrupt_direct
type: Function
lineno: 49
-
+```
@@ -9701,9 +9701,9 @@ lineno: 49
β
.
-- **Outcome:** passed
+- **Outcome:** `passed`
- **Details:**
-
+```
result:
nodeid: ci-reports
type: Dir
@@ -9712,7 +9712,7 @@ type: Package
nodeid: tests
type: Dir
-
+```
@@ -9727,13 +9727,13 @@ type: Dir
Warnings #1
-
+```
message: Test warning
category: UserWarning
when: runtest
filename: /workspace/tligui_y/slic/tests/test_string_utils.py
lineno: 24
-
+```
diff --git a/ci-reports/markdown/json-tree-view.txt b/ci-reports/markdown/json-tree-view.txt
index 557e18ba..02047d83 100644
--- a/ci-reports/markdown/json-tree-view.txt
+++ b/ci-reports/markdown/json-tree-view.txt
@@ -1,6 +1,6 @@
π ci-reports/markdown/pytest-report.json
-βββ created: 1752756121.906582
-βββ duration: 0.7456588745117188
+βββ created: 1752757060.0614815
+βββ duration: 0.7686643600463867
βββ exitcode: 2
βββ root: /workspace/tligui_y/slic
βββ environment
@@ -523,13 +523,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.0030945749022066593
+β β β βββ duration: 0.003061530995182693
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00045655795838683844
+β β β βββ duration: 0.00040166592225432396
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00023347395472228527
+β β βββ duration: 0.0002309569390490651
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_io_utils.py::test_write_file
@@ -542,13 +542,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00045122706796973944
+β β β βββ duration: 0.0004485159879550338
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.0002709140535444021
+β β β βββ duration: 0.0002946000313386321
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00015074899420142174
+β β βββ duration: 0.00013904098886996508
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_io_utils.py::test_cause_io_error
@@ -561,10 +561,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00011305790394544601
+β β β βββ duration: 0.00011115300003439188
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00014978903345763683
+β β β βββ duration: 0.00016092800069600344
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/functions/io_utils.py
@@ -593,7 +593,7 @@
β β β
β β β functions/io_utils.py:10: OSError
β β βββ teardown
-β β βββ duration: 0.00013967498671263456
+β β βββ duration: 0.00013689196202903986
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_io_utils.py::test_file_not_found
@@ -606,10 +606,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.0001188049791380763
+β β β βββ duration: 0.00011640496086329222
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.0001938649220392108
+β β β βββ duration: 0.00017964199651032686
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/functions/io_utils.py
@@ -642,7 +642,7 @@
β β β
β β β functions/io_utils.py:2: FileNotFoundError
β β βββ teardown
-β β βββ duration: 0.0001453569857403636
+β β βββ duration: 0.000135085079818964
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_io_utils.py::test_permission_error
@@ -655,10 +655,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00019895797595381737
+β β β βββ duration: 0.000195822911337018
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.0001764290500432253
+β β β βββ duration: 0.00017941906116902828
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_io_utils.py
@@ -678,7 +678,7 @@
β β β β βββ lineno: 34
β β β β βββ message: PermissionError
β β β βββ longrepr: monkeypatch = <_pytest.monkeypatch.MonkeyPatch object
-β β β at 0x7f7c9bfeeb80>
+β β β at 0x7f0a92d4b520>
β β β
β β β def test_permission_error(monkeypatch):
β β β # Patch open to raise PermissionError simulating access
@@ -704,7 +704,7 @@
β β β
β β β tests/test_io_utils.py:34: PermissionError
β β βββ teardown
-β β βββ duration: 0.0001687180483713746
+β β βββ duration: 0.0001630149781703949
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_io_utils.py::test_mock_open_error
@@ -717,10 +717,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.0001890889834612608
+β β β βββ duration: 0.0001875460147857666
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.0032746070064604282
+β β β βββ duration: 0.0031941679771989584
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path:
@@ -746,7 +746,7 @@
β β β β βββ lineno: 1140
β β β β βββ message: OSError
β β β βββ longrepr: monkeypatch = <_pytest.monkeypatch.MonkeyPatch object
-β β β at 0x7f7c9e158640>
+β β β at 0x7f0a92d76550>
β β β
β β β def test_mock_open_error(monkeypatch):
β β β # Mock open() to raise IOError simulating read error
@@ -768,7 +768,7 @@
β β β _ _ _ _ _ _ _ _
β β β
β β β self =
+β β β id='139683389992000'>
β β β args = ('file.txt', 'r'), kwargs = {}, effect = OSError('Mocked
β β β IOError')
β β β
@@ -786,7 +786,7 @@
β β β
β β β .pixi/envs/default/lib/python3.8/unittest/mock.py:1140: OSError
β β βββ teardown
-β β βββ duration: 0.00026654102839529514
+β β βββ duration: 0.00032785895746201277
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_io_utils.py::test_file_handle_closed_error
@@ -799,10 +799,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00013529998250305653
+β β β βββ duration: 0.00014014600310474634
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00018338696099817753
+β β β βββ duration: 0.00019203894771635532
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_io_utils.py
@@ -822,7 +822,7 @@
β β β
β β β tests/test_io_utils.py:50: ValueError
β β βββ teardown
-β β βββ duration: 0.00017184496391564608
+β β βββ duration: 0.0002131899818778038
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_io_utils.py::test_os_error
@@ -835,10 +835,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00022960396017879248
+β β β βββ duration: 0.0002949860645458102
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00018053699750453234
+β β β βββ duration: 0.00020159303676337004
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_io_utils.py
@@ -854,7 +854,7 @@
β β β β βββ lineno: 55
β β β β βββ message: OSError
β β β βββ longrepr: monkeypatch = <_pytest.monkeypatch.MonkeyPatch object
-β β β at 0x7f7c9bddb7f0>
+β β β at 0x7f0a92d76a30>
β β β
β β β def test_os_error(monkeypatch):
β β β # Patch os.remove to raise OSError simulating filesystem
@@ -876,7 +876,7 @@
β β β
β β β tests/test_io_utils.py:55: OSError
β β βββ teardown
-β β βββ duration: 0.00018866301979869604
+β β βββ duration: 0.00020143704023212194
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_io_utils.py::test_write_file_readonly
@@ -889,13 +889,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.0006322979461401701
+β β β βββ duration: 0.0007073919987305999
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.0008573139784857631
+β β β βββ duration: 0.0009686429984867573
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00016357190907001495
+β β βββ duration: 0.00015265005640685558
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_io_utils.py::test_file_not_found_error
@@ -908,10 +908,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00013521395158022642
+β β β βββ duration: 0.00012058299034833908
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00017561798449605703
+β β β βββ duration: 0.00017363904044032097
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_io_utils.py
@@ -932,7 +932,7 @@
β β β
β β β tests/test_io_utils.py:69: FileNotFoundError
β β βββ teardown
-β β βββ duration: 0.00014276406727731228
+β β βββ duration: 0.00017369992565363646
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_broken
@@ -945,10 +945,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00013235700316727161
+β β β βββ duration: 0.00013829104136675596
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00016230996698141098
+β β β βββ duration: 0.00016320100985467434
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_math_utils.py
@@ -968,7 +968,7 @@
β β β
β β β tests/test_math_utils.py:16: NameError
β β βββ teardown
-β β βββ duration: 0.00013918790500611067
+β β βββ duration: 0.00014692696277052164
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_call_missing_function
@@ -981,10 +981,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00011965807061642408
+β β β βββ duration: 0.00016260810662060976
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00015563599299639463
+β β β βββ duration: 0.0001658709952607751
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_math_utils.py
@@ -1005,7 +1005,7 @@
β β β
β β β tests/test_math_utils.py:20: AttributeError
β β βββ teardown
-β β βββ duration: 0.00014486501459032297
+β β βββ duration: 0.00015413598157465458
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_addition_pass[2-2-4]
@@ -1021,13 +1021,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00028897100128233433
+β β β βββ duration: 0.0003402769798412919
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00014517607633024454
+β β β βββ duration: 0.00015228299889713526
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.0001516880001872778
+β β βββ duration: 0.00016410311218351126
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_addition_pass[1-5-6]
@@ -1043,13 +1043,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.0002635400742292404
+β β β βββ duration: 0.00026776595041155815
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00013220403343439102
+β β β βββ duration: 0.00015462294686585665
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.0001458890037611127
+β β βββ duration: 0.00014649296645075083
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_addition_pass[3-4-7]
@@ -1065,13 +1065,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.000248664990067482
+β β β βββ duration: 0.00025113194715231657
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.0001311770174652338
+β β β βββ duration: 0.0001401189947500825
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00013519299682229757
+β β βββ duration: 0.00014662707690149546
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_addition_pass[3-5-8]
@@ -1087,13 +1087,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.000234995037317276
+β β β βββ duration: 0.0002509730402380228
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00013115000911056995
+β β β βββ duration: 0.0001332019455730915
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.0001368920784443617
+β β βββ duration: 0.00013469799887388945
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_addition_pass[3-6-9]
@@ -1109,13 +1109,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.0002592899836599827
+β β β βββ duration: 0.00024719990324229
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00012576894368976355
+β β β βββ duration: 0.00013244303409010172
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00013241998385637999
+β β βββ duration: 0.00019871501717716455
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_addition_pass_id
@@ -1131,13 +1131,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.0002537210239097476
+β β β βββ duration: 0.00026122794952243567
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00012997398152947426
+β β β βββ duration: 0.00013164302799850702
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.0001358760055154562
+β β βββ duration: 0.00013964902609586716
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_addition_pass_id
@@ -1153,13 +1153,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00024325901176780462
+β β β βββ duration: 0.0002579230349510908
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00012497801799327135
+β β β βββ duration: 0.00012996303848922253
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00013121706433594227
+β β βββ duration: 0.0001324209151789546
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_addition_pass_id
@@ -1175,13 +1175,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.0002527909819036722
+β β β βββ duration: 0.00025008199736475945
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00013031100388616323
+β β β βββ duration: 0.00012540805619210005
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.0001348840305581689
+β β βββ duration: 0.00014230795204639435
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_addition_fail
@@ -1194,10 +1194,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00011326407548040152
+β β β βββ duration: 0.00013091193977743387
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00039576098788529634
+β β β βββ duration: 0.0004954959731549025
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_math_utils.py
@@ -1217,7 +1217,7 @@
β β β
β β β tests/test_math_utils.py:51: AssertionError
β β βββ teardown
-β β βββ duration: 0.00013215793296694756
+β β βββ duration: 0.00015981006436049938
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_division_zero
@@ -1230,10 +1230,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.0001144979614764452
+β β β βββ duration: 0.00012887094635516405
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.0001487260451540351
+β β β βββ duration: 0.00017330003902316093
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/functions/math_utils.py
@@ -1265,7 +1265,7 @@
β β β
β β β functions/math_utils.py:5: ZeroDivisionError
β β βββ teardown
-β β βββ duration: 0.0001357960281893611
+β β βββ duration: 0.00015743891708552837
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_multiply_xfail
@@ -1280,10 +1280,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00013073708396404982
+β β β βββ duration: 0.00015089497901499271
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.0002562359441071749
+β β β βββ duration: 0.0003022280288860202
β β β βββ outcome: skipped
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_math_utils.py
@@ -1305,7 +1305,7 @@
β β β
β β β tests/test_math_utils.py:60: AssertionError
β β βββ teardown
-β β βββ duration: 0.00013726495672017336
+β β βββ duration: 0.0001838579773902893
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_runtime_error
@@ -1318,10 +1318,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00012192002031952143
+β β β βββ duration: 0.00013021891936659813
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00014745292719453573
+β β β βββ duration: 0.00016132695600390434
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_math_utils.py
@@ -1339,7 +1339,7 @@
β β β
β β β tests/test_math_utils.py:64: RuntimeError
β β βββ teardown
-β β βββ duration: 0.00013503700029104948
+β β βββ duration: 0.00017315102741122246
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_memory_error
@@ -1352,10 +1352,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00011871790047734976
+β β β βββ duration: 0.00013186107389628887
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00014581100549548864
+β β β βββ duration: 0.00018722598906606436
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_math_utils.py
@@ -1374,7 +1374,7 @@
β β β
β β β tests/test_math_utils.py:68: MemoryError
β β βββ teardown
-β β βββ duration: 0.00013305200263857841
+β β βββ duration: 0.00016550999134778976
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_timeout_error
@@ -1387,10 +1387,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.0001157029764726758
+β β β βββ duration: 0.00014301505871117115
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.0001429020194336772
+β β β βββ duration: 0.00015760294627398252
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_math_utils.py
@@ -1409,7 +1409,7 @@
β β β
β β β tests/test_math_utils.py:72: TimeoutError
β β βββ teardown
-β β βββ duration: 0.000136462040245533
+β β βββ duration: 0.00014451099559664726
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_recursion_error
@@ -1422,10 +1422,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.0001185110304504633
+β β β βββ duration: 0.0001292990054935217
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.0007487450493499637
+β β β βββ duration: 0.0009431469952687621
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_math_utils.py
@@ -1460,7 +1460,7 @@
β β β E RecursionError: maximum recursion depth exceeded
β β β !!! Recursion detected (same locals & position)
β β βββ teardown
-β β βββ duration: 0.0001426819944754243
+β β βββ duration: 0.0001559760421514511
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_floating_point_error
@@ -1473,10 +1473,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00012207799591124058
+β β β βββ duration: 0.0001294909743592143
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.000149055034853518
+β β β βββ duration: 0.00016297795809805393
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_math_utils.py
@@ -1495,7 +1495,7 @@
β β β
β β β tests/test_math_utils.py:82: FloatingPointError
β β βββ teardown
-β β βββ duration: 0.00013744004536420107
+β β βββ duration: 0.0001409549731761217
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_floating_point_overflow
@@ -1508,10 +1508,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00012035807594656944
+β β β βββ duration: 0.00013170798774808645
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00016589800361543894
+β β β βββ duration: 0.0001817760057747364
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_math_utils.py
@@ -1529,7 +1529,7 @@
β β β
β β β tests/test_math_utils.py:86: OverflowError
β β βββ teardown
-β β βββ duration: 0.00013628893066197634
+β β βββ duration: 0.00015668000560253859
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_value_error
@@ -1542,10 +1542,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.000115199014544487
+β β β βββ duration: 0.00012792192865163088
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00014984700828790665
+β β β βββ duration: 0.00016239506658166647
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_math_utils.py
@@ -1565,7 +1565,7 @@
β β β
β β β tests/test_math_utils.py:90: ValueError
β β βββ teardown
-β β βββ duration: 0.00013879104517400265
+β β βββ duration: 0.0001453660661354661
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_wrong_argument_error
@@ -1578,10 +1578,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00011630705557763577
+β β β βββ duration: 0.00012796197552233934
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00014825700782239437
+β β β βββ duration: 0.00015692110173404217
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_math_utils.py
@@ -1599,7 +1599,7 @@
β β β
β β β tests/test_math_utils.py:94: TypeError
β β βββ teardown
-β β βββ duration: 0.00013706099707633257
+β β βββ duration: 0.00014484603889286518
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_unhandled_exception
@@ -1612,10 +1612,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00012199499178677797
+β β β βββ duration: 0.00012910098303109407
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.000146702048368752
+β β β βββ duration: 0.0001633589854463935
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_math_utils.py
@@ -1633,7 +1633,7 @@
β β β
β β β tests/test_math_utils.py:98: Exception
β β βββ teardown
-β β βββ duration: 0.0001380089670419693
+β β βββ duration: 0.00014827994164079428
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_custom_error
@@ -1646,10 +1646,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00012132199481129646
+β β β βββ duration: 0.000127198058180511
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00015873601660132408
+β β β βββ duration: 0.0001688649645075202
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_math_utils.py
@@ -1668,7 +1668,7 @@
β β β
β β β tests/test_math_utils.py:102: CustomError
β β βββ teardown
-β β βββ duration: 0.0001377440057694912
+β β βββ duration: 0.00015202700160443783
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_stop_iteration_direct
@@ -1681,10 +1681,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00012033595703542233
+β β β βββ duration: 0.00012734101619571447
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.000149609986692667
+β β β βββ duration: 0.0001584240235388279
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path:
@@ -1771,7 +1771,7 @@
β β β
β β β cls =
β β β func = . at
-β β β 0x7f7c9c3fb700>
+β β β 0x7f0a928fb700>
β β β when = 'call'
β β β reraise = (, )
@@ -1854,7 +1854,7 @@
β β β .pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.p
β β β y:880: RuntimeError
β β βββ teardown
-β β βββ duration: 0.0002125550527125597
+β β βββ duration: 0.0002604519249871373
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_generator_exit_direct
@@ -1867,10 +1867,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00013530196156352758
+β β β βββ duration: 0.000176700996235013
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00016580300871282816
+β β β βββ duration: 0.00018002605065703392
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_math_utils.py
@@ -1888,7 +1888,7 @@
β β β
β β β tests/test_math_utils.py:110: GeneratorExit
β β βββ teardown
-β β βββ duration: 0.0001733059762045741
+β β βββ duration: 0.00018354994244873524
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_malformed_code
@@ -1901,10 +1901,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.0001369889359921217
+β β β βββ duration: 0.00015007692854851484
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00016528996638953686
+β β β βββ duration: 0.00017871602904051542
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_math_utils.py
@@ -1928,7 +1928,7 @@
β β β
β β β tests/test_math_utils.py:114: SyntaxError
β β βββ teardown
-β β βββ duration: 0.00015739502850919962
+β β βββ duration: 0.0001655110390856862
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_sys_exit
@@ -1941,10 +1941,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00012365798465907574
+β β β βββ duration: 0.00013621198013424873
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00015858199913054705
+β β β βββ duration: 0.00016006897203624249
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_math_utils.py
@@ -1962,7 +1962,7 @@
β β β
β β β tests/test_math_utils.py:118: SystemExit
β β βββ teardown
-β β βββ duration: 0.00015377101954072714
+β β βββ duration: 0.0001537570497021079
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_broken_function
@@ -1975,10 +1975,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.0001291430089622736
+β β β βββ duration: 0.00012668000999838114
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00016004894860088825
+β β β βββ duration: 0.00017143308650702238
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_math_utils.py
@@ -2011,7 +2011,7 @@
β β β
β β β tests/test_math_utils.py:123: TypeError
β β βββ teardown
-β β βββ duration: 0.00016661197878420353
+β β βββ duration: 0.000167321995832026
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_import_error
@@ -2024,10 +2024,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00014334800653159618
+β β β βββ duration: 0.0001259640557691455
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.000163770979270339
+β β β βββ duration: 0.000156253925524652
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_math_utils.py
@@ -2044,7 +2044,7 @@
β β β
β β β tests/test_math_utils.py:127: ImportError
β β βββ teardown
-β β βββ duration: 0.0001576520735397935
+β β βββ duration: 0.00014695292338728905
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_math_utils.py::test_module_not_found_error
@@ -2057,10 +2057,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00012506800703704357
+β β β βββ duration: 0.0001394529826939106
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.000478317029774189
+β β β βββ duration: 0.0005187669303268194
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path:
@@ -2108,7 +2108,7 @@
β β β _ _ _ _ _ _ _ _
β β β
β β β name = 'non_existent_module_xyz'
-β β β import_ =
+β β β import_ =
β β β
β β β > ???
β β β E ModuleNotFoundError: No module named
@@ -2116,7 +2116,7 @@
β β β
β β β :973: ModuleNotFoundError
β β βββ teardown
-β β βββ duration: 0.00016295909881591797
+β β βββ duration: 0.00015894498210400343
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::test_basic_ids
@@ -2132,13 +2132,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00024215399753302336
+β β β βββ duration: 0.0002617130521684885
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.0001407819800078869
+β β β βββ duration: 0.00015065399929881096
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00013018003664910793
+β β βββ duration: 0.0001631900668144226
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::test_basic_ids
@@ -2154,13 +2154,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00019932794384658337
+β β β βββ duration: 0.00019936100579798222
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00013893493451178074
+β β β βββ duration: 0.00013418507296591997
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.0001254350645467639
+β β βββ duration: 0.0001264300663024187
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::test_with_reason_and_marks
@@ -2176,13 +2176,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00018506695050746202
+β β β βββ duration: 0.00017676001880317926
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00012912496458739042
+β β β βββ duration: 0.00014559307601302862
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00011539401020854712
+β β βββ duration: 0.00012384506408125162
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::test_with_reason_and_marks
@@ -2199,12 +2199,12 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00022856297437101603
+β β β βββ duration: 0.00023672799579799175
β β β βββ outcome: skipped
β β β βββ longrepr: ('/workspace/tligui_y/slic/tests/test_param.py', 12,
β β β 'Skipped: nope')
β β βββ teardown
-β β βββ duration: 0.00011827400885522366
+β β βββ duration: 0.00012518500443547964
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::test_multiple_positional_args[1-2]
@@ -2220,13 +2220,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00021801807451993227
+β β β βββ duration: 0.00023974699433892965
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.0001294170506298542
+β β β βββ duration: 0.00014940695837140083
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00012675393372774124
+β β βββ duration: 0.00013794400729238987
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::test_multiple_positional_args[3-4]
@@ -2242,13 +2242,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00022769300267100334
+β β β βββ duration: 0.00020986096933484077
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00012728595174849033
+β β β βββ duration: 0.00014582695439457893
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00012939900625497103
+β β βββ duration: 0.00013537402264773846
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::test_non_literal_with_id
@@ -2264,13 +2264,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.0001566710416227579
+β β β βββ duration: 0.00016870396211743355
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00012339907698333263
+β β β βββ duration: 0.00014169199857860804
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00011347199324518442
+β β βββ duration: 0.0001256490359082818
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::test_timedistance_v1
@@ -2286,13 +2286,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.0002463760320097208
+β β β βββ duration: 0.00026894197799265385
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00012865697499364614
+β β β βββ duration: 0.00014270201791077852
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00013530906289815903
+β β βββ duration: 0.00016119400970637798
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::test_timedistance_v1
@@ -2308,13 +2308,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00024029298219829798
+β β β βββ duration: 0.0002681460464373231
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00012802693527191877
+β β β βββ duration: 0.00013109506107866764
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00013867404777556658
+β β βββ duration: 0.0001480280188843608
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::TestDynamic::test_sum_positive
@@ -2328,7 +2328,7 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00014172005467116833
+β β β βββ duration: 0.0001716669648885727
β β β βββ outcome: failed
β β β βββ longrepr: file /workspace/tligui_y/slic/tests/test_param.py,
β β β line 71
@@ -2345,7 +2345,7 @@
β β β
β β β /workspace/tligui_y/slic/tests/test_param.py:71
β β βββ teardown
-β β βββ duration: 0.00013289705384522676
+β β βββ duration: 0.0001639300025999546
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::test_dynamic
@@ -2359,13 +2359,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.0001830519177019596
+β β β βββ duration: 0.00019332708325237036
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00012989796232432127
+β β β βββ duration: 0.00013750593643635511
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00011889799498021603
+β β βββ duration: 0.00012976897414773703
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::test_dynamic
@@ -2379,13 +2379,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00016345398034900427
+β β β βββ duration: 0.00018239801283925772
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00012829992920160294
+β β β βββ duration: 0.00013742002192884684
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00011664198245853186
+β β βββ duration: 0.00013528205454349518
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::test_dynamic
@@ -2399,13 +2399,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.0001635699300095439
+β β β βββ duration: 0.00017375207971781492
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00012086809147149324
+β β β βββ duration: 0.00012700899969786406
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00011111004278063774
+β β βββ duration: 0.00012178800534456968
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::test_element_type[\U0001f525]
@@ -2419,13 +2419,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00018057296983897686
+β β β βββ duration: 0.000185595010407269
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00012491503730416298
+β β β βββ duration: 0.00013192207552492619
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00011564698070287704
+β β βββ duration: 0.00012424704618752003
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::test_element_type[\U0001f4a7]
@@ -2439,13 +2439,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00017015694174915552
+β β β βββ duration: 0.00017815292812883854
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00012139591854065657
+β β β βββ duration: 0.00012919306755065918
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00011556304525583982
+β β βββ duration: 0.00012062094174325466
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::test_element_type[\U0001f30d]
@@ -2459,13 +2459,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00016361300367861986
+β β β βββ duration: 0.00017611810471862555
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00012301607057452202
+β β β βββ duration: 0.00013334793038666248
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00011423404794186354
+β β βββ duration: 0.00012266100384294987
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::test_combination
@@ -2481,13 +2481,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.0002166170161217451
+β β β βββ duration: 0.00021067692432552576
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.000128492945805192
+β β β βββ duration: 0.00012870400678366423
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00012786604929715395
+β β βββ duration: 0.00013846298679709435
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::test_combination
@@ -2503,13 +2503,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00019811198581010103
+β β β βββ duration: 0.00022841000463813543
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00012375600636005402
+β β β βββ duration: 0.00013159599620848894
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00013050506822764874
+β β βββ duration: 0.0001384878996759653
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::test_combination
@@ -2525,13 +2525,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.0002045569708570838
+β β β βββ duration: 0.0002173910615965724
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00012367591261863708
+β β β βββ duration: 0.0001379289897158742
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.0001215559896081686
+β β βββ duration: 0.00013272708747535944
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::test_combination
@@ -2547,13 +2547,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.0002129790373146534
+β β β βββ duration: 0.0002061250852420926
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00012761703692376614
+β β β βββ duration: 0.00014073296915739775
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.0001256139948964119
+β β βββ duration: 0.00015582703053951263
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::test_indirect_fixture[1]
@@ -2569,13 +2569,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.0001580060925334692
+β β β βββ duration: 0.00018170604016631842
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.0001302680466324091
+β β β βββ duration: 0.00014184904284775257
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00027987302746623755
+β β βββ duration: 0.00026123097632080317
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::test_indirect_fixture[2]
@@ -2591,13 +2591,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00018331094179302454
+β β β βββ duration: 0.0002087079919874668
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00013011193368583918
+β β β βββ duration: 0.00015469209756702185
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00011838495265692472
+β β βββ duration: 0.0001297489507123828
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_param.py::test_addition
@@ -2610,10 +2610,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00011859298683702946
+β β β βββ duration: 0.00013034406583756208
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00015351001638919115
+β β β βββ duration: 0.00016851199325174093
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_param.py
@@ -2633,7 +2633,7 @@
β β β
β β β tests/test_param.py:107: NameError
β β βββ teardown
-β β βββ duration: 0.00014142808504402637
+β β βββ duration: 0.0001569989835843444
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_string_utils.py::test_uppercase_normal
@@ -2646,13 +2646,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00012968492228537798
+β β β βββ duration: 0.00014512601774185896
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00014042598195374012
+β β β βββ duration: 0.0001521629747003317
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00010028202086687088
+β β βββ duration: 0.00011778890620917082
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_string_utils.py::test_uppercase_type_error
@@ -2665,10 +2665,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00011451297905296087
+β β β βββ duration: 0.00011172494851052761
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00014382100198417902
+β β β βββ duration: 0.00015274202451109886
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/functions/string_utils.py
@@ -2700,7 +2700,7 @@
β β β
β β β functions/string_utils.py:3: TypeError
β β βββ teardown
-β β βββ duration: 0.000135448994114995
+β β βββ duration: 0.00014208396896719933
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_string_utils.py::test_reverse_string
@@ -2713,13 +2713,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00011655106209218502
+β β β βββ duration: 0.00012179696932435036
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.0001367910299450159
+β β β βββ duration: 0.00015486497431993484
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 9.896396659314632e-05
+β β βββ duration: 0.0001054280437529087
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_string_utils.py::test_warning_emit
@@ -2732,13 +2732,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00010447704698890448
+β β β βββ duration: 0.0001131650060415268
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.0001405010698363185
+β β β βββ duration: 0.00016114593017846346
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 9.625300299376249e-05
+β β βββ duration: 9.896804112941027e-05
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_string_utils.py::test_unicode_decode_error
@@ -2751,10 +2751,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00011937599629163742
+β β β βββ duration: 0.00011881999671459198
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00014612905215471983
+β β β βββ duration: 0.0001722599845379591
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_string_utils.py
@@ -2774,7 +2774,7 @@
β β β
β β β tests/test_string_utils.py:28: UnicodeDecodeError
β β βββ teardown
-β β βββ duration: 0.00013408297672867775
+β β βββ duration: 0.0001391660189256072
β β βββ outcome: passed
β βββ -
β β βββ nodeid:
@@ -2788,10 +2788,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00011775200255215168
+β β β βββ duration: 0.00012017902918159962
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00016237609088420868
+β β β βββ duration: 0.000166269950568676
β β β βββ outcome: failed
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_string_utils.py
@@ -2812,7 +2812,7 @@
β β β
β β β tests/test_string_utils.py:32: UnicodeDecodeError
β β βββ teardown
-β β βββ duration: 0.00013377901632338762
+β β βββ duration: 0.000136653077788651
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_string_utils.py::test_import_warning
@@ -2825,13 +2825,13 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00011959206312894821
+β β β βββ duration: 0.00012189196422696114
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.00014226697385311127
+β β β βββ duration: 0.000153709901496768
β β β βββ outcome: passed
β β βββ teardown
-β β βββ duration: 0.00010301300790160894
+β β βββ duration: 0.00010752503294497728
β β βββ outcome: passed
β βββ -
β β βββ nodeid: tests/test_string_utils.py::test_xfail_uppercase_digits
@@ -2846,10 +2846,10 @@
β β β βββ slic
β β β βββ
β β βββ setup
-β β β βββ duration: 0.00011613895185291767
+β β β βββ duration: 0.00013186491560190916
β β β βββ outcome: passed
β β βββ call
-β β β βββ duration: 0.0005602469900622964
+β β β βββ duration: 0.0006662909872829914
β β β βββ outcome: skipped
β β β βββ crash
β β β β βββ path: /workspace/tligui_y/slic/tests/test_string_utils.py
@@ -2878,7 +2878,7 @@
β β β
β β β tests/test_string_utils.py:41: AssertionError
β β βββ teardown
-β β βββ duration: 0.000133957015350461
+β β βββ duration: 0.00013853597920387983
β β βββ outcome: passed
β βββ -
β βββ nodeid: tests/test_string_utils.py::test_keyboard_interrupt_direct
@@ -2891,7 +2891,7 @@
β β βββ slic
β β βββ
β βββ setup
-β βββ duration: 0.00011627702042460442
+β βββ duration: 0.00013420695904642344
β βββ outcome: passed
βββ warnings
βββ -
diff --git a/ci-reports/markdown/pytest-report.json b/ci-reports/markdown/pytest-report.json
index 1e750702..a437c688 100644
--- a/ci-reports/markdown/pytest-report.json
+++ b/ci-reports/markdown/pytest-report.json
@@ -1 +1 @@
-{"created": 1752756121.906582, "duration": 0.7456588745117188, "exitcode": 2, "root": "/workspace/tligui_y/slic", "environment": {}, "summary": {"passed": 36, "failed": 32, "xfailed": 2, "skipped": 1, "error": 1, "total": 72, "collected": 72}, "collectors": [{"nodeid": "", "outcome": "passed", "result": [{"nodeid": ".", "type": "Dir"}]}, {"nodeid": "ci-reports/allure/data", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/export", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/history", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/plugin/behaviors", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/plugin/packages", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/plugin/screen-diff", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/plugin", "outcome": "passed", "result": [{"nodeid": "ci-reports/allure/plugin/behaviors", "type": "Dir"}, {"nodeid": "ci-reports/allure/plugin/packages", "type": "Dir"}, {"nodeid": "ci-reports/allure/plugin/screen-diff", "type": "Dir"}]}, {"nodeid": "ci-reports/allure/widgets", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure", "outcome": "passed", "result": [{"nodeid": "ci-reports/allure/data", "type": "Dir"}, {"nodeid": "ci-reports/allure/export", "type": "Dir"}, {"nodeid": "ci-reports/allure/history", "type": "Dir"}, {"nodeid": "ci-reports/allure/plugin", "type": "Dir"}, {"nodeid": "ci-reports/allure/widgets", "type": "Dir"}]}, {"nodeid": "ci-reports/coverage", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/markdown", "outcome": "passed", "result": []}, {"nodeid": "ci-reports", "outcome": "passed", "result": [{"nodeid": "ci-reports/allure", "type": "Dir"}, {"nodeid": "ci-reports/coverage", "type": "Dir"}, {"nodeid": "ci-reports/markdown", "type": "Dir"}]}, {"nodeid": "functions", "outcome": "passed", "result": []}, {"nodeid": "tests/test_broken_fct.py", "outcome": "failed", "result": [], "longrepr": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/python.py:493: in importtestmodule\n mod = import_path(\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/pathlib.py:587: in import_path\n importlib.import_module(module_name)\n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\n:1014: in _gcd_import\n ???\n:991: in _find_and_load\n ???\n:975: in _find_and_load_unlocked\n ???\n:671: in _load_unlocked\n ???\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rewrite.py:175: in exec_module\n source_stat, co = _rewrite_test(fn, self.config)\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rewrite.py:355: in _rewrite_test\n tree = ast.parse(source, filename=strfn)\n.pixi/envs/default/lib/python3.8/ast.py:47: in parse\n return compile(source, filename, mode, flags,\nE File \"/workspace/tligui_y/slic/tests/test_broken_fct.py\", line 8\nE def test_valid_2():\nE ^\nE SyntaxError: invalid syntax"}, {"nodeid": "tests/test_collector_error.py", "outcome": "failed", "result": [], "longrepr": "ImportError while importing test module '/workspace/tligui_y/slic/tests/test_collector_error.py'.\nHint: make sure your test modules/packages have valid Python names.\nTraceback:\n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\ntests/test_collector_error.py:1: in \n from no_existing_module.math_utils import *\nE ModuleNotFoundError: No module named 'no_existing_module'"}, {"nodeid": "tests/test_io_utils.py", "outcome": "passed", "result": [{"nodeid": "tests/test_io_utils.py::test_read_file", "type": "Function", "lineno": 9}, {"nodeid": "tests/test_io_utils.py::test_write_file", "type": "Function", "lineno": 16}, {"nodeid": "tests/test_io_utils.py::test_cause_io_error", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_io_utils.py::test_file_not_found", "type": "Function", "lineno": 26}, {"nodeid": "tests/test_io_utils.py::test_permission_error", "type": "Function", "lineno": 30}, {"nodeid": "tests/test_io_utils.py::test_mock_open_error", "type": "Function", "lineno": 37}, {"nodeid": "tests/test_io_utils.py::test_file_handle_closed_error", "type": "Function", "lineno": 45}, {"nodeid": "tests/test_io_utils.py::test_os_error", "type": "Function", "lineno": 51}, {"nodeid": "tests/test_io_utils.py::test_write_file_readonly", "type": "Function", "lineno": 58}, {"nodeid": "tests/test_io_utils.py::test_file_not_found_error", "type": "Function", "lineno": 66}]}, {"nodeid": "tests/test_math_utils.py", "outcome": "passed", "result": [{"nodeid": "tests/test_math_utils.py::test_broken", "type": "Function", "lineno": 13}, {"nodeid": "tests/test_math_utils.py::test_call_missing_function", "type": "Function", "lineno": 17}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[2-2-4]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[1-5-6]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-7]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-5-8]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-6-9]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=2,b=2,expected=4]", "type": "Function", "lineno": 36}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=1,b=5,expected=6]", "type": "Function", "lineno": 36}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=3,b=4,expected=7]", "type": "Function", "lineno": 36}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "type": "Function", "lineno": 48}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "type": "Function", "lineno": 52}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "type": "Function", "lineno": 56}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "type": "Function", "lineno": 61}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "type": "Function", "lineno": 65}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "type": "Function", "lineno": 69}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "type": "Function", "lineno": 73}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "type": "Function", "lineno": 79}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "type": "Function", "lineno": 83}, {"nodeid": "tests/test_math_utils.py::test_value_error", "type": "Function", "lineno": 87}, {"nodeid": "tests/test_math_utils.py::test_wrong_argument_error", "type": "Function", "lineno": 91}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "type": "Function", "lineno": 95}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "type": "Function", "lineno": 99}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "type": "Function", "lineno": 103}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "type": "Function", "lineno": 107}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "type": "Function", "lineno": 111}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "type": "Function", "lineno": 115}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "type": "Function", "lineno": 119}, {"nodeid": "tests/test_math_utils.py::test_import_error", "type": "Function", "lineno": 125}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "type": "Function", "lineno": 128}]}, {"nodeid": "tests/test_param.py::TestDynamic", "outcome": "passed", "result": [{"nodeid": "tests/test_param.py::TestDynamic::test_sum_positive", "type": "Function", "lineno": 70}]}, {"nodeid": "tests/test_param.py", "outcome": "passed", "result": [{"nodeid": "tests/test_param.py::test_basic_ids[one]", "type": "Function", "lineno": 3}, {"nodeid": "tests/test_param.py::test_basic_ids[two]", "type": "Function", "lineno": 3}, {"nodeid": "tests/test_param.py::test_with_reason_and_marks[ten]", "type": "Function", "lineno": 11}, {"nodeid": "tests/test_param.py::test_with_reason_and_marks[twenty]", "type": "Function", "lineno": 11}, {"nodeid": "tests/test_param.py::test_multiple_positional_args[1-2]", "type": "Function", "lineno": 19}, {"nodeid": "tests/test_param.py::test_multiple_positional_args[3-4]", "type": "Function", "lineno": 19}, {"nodeid": "tests/test_param.py::test_non_literal_with_id[custom-obj]", "type": "Function", "lineno": 27}, {"nodeid": "tests/test_param.py::test_timedistance_v1[a0-b0-expected0]", "type": "Function", "lineno": 40}, {"nodeid": "tests/test_param.py::test_timedistance_v1[a1-b1-expected1]", "type": "Function", "lineno": 40}, {"nodeid": "tests/test_param.py::TestDynamic", "type": "Class"}, {"nodeid": "tests/test_param.py::test_dynamic[ten]", "type": "Function", "lineno": 78}, {"nodeid": "tests/test_param.py::test_dynamic[twenty]", "type": "Function", "lineno": 78}, {"nodeid": "tests/test_param.py::test_dynamic[thirty]", "type": "Function", "lineno": 78}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f525]", "type": "Function", "lineno": 87}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f4a7]", "type": "Function", "lineno": 87}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f30d]", "type": "Function", "lineno": 87}, {"nodeid": "tests/test_param.py::test_combination[a-1]", "type": "Function", "lineno": 90}, {"nodeid": "tests/test_param.py::test_combination[a-2]", "type": "Function", "lineno": 90}, {"nodeid": "tests/test_param.py::test_combination[b-1]", "type": "Function", "lineno": 90}, {"nodeid": "tests/test_param.py::test_combination[b-2]", "type": "Function", "lineno": 90}, {"nodeid": "tests/test_param.py::test_indirect_fixture[1]", "type": "Function", "lineno": 100}, {"nodeid": "tests/test_param.py::test_indirect_fixture[2]", "type": "Function", "lineno": 100}, {"nodeid": "tests/test_param.py::test_addition", "type": "Function", "lineno": 104}]}, {"nodeid": "tests/test_string_utils.py", "outcome": "passed", "result": [{"nodeid": "tests/test_string_utils.py::test_uppercase_normal", "type": "Function", "lineno": 9}, {"nodeid": "tests/test_string_utils.py::test_uppercase_type_error", "type": "Function", "lineno": 13}, {"nodeid": "tests/test_string_utils.py::test_reverse_string", "type": "Function", "lineno": 17}, {"nodeid": "tests/test_string_utils.py::test_warning_emit", "type": "Function", "lineno": 21}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_error", "type": "Function", "lineno": 25}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_surrogateescape", "type": "Function", "lineno": 29}, {"nodeid": "tests/test_string_utils.py::test_import_warning", "type": "Function", "lineno": 33}, {"nodeid": "tests/test_string_utils.py::test_xfail_uppercase_digits", "type": "Function", "lineno": 37}, {"nodeid": "tests/test_string_utils.py::test_keyboard_interrupt_direct", "type": "Function", "lineno": 49}]}, {"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_param.py", "type": "Module"}, {"nodeid": "tests/test_string_utils.py", "type": "Module"}]}, {"nodeid": ".", "outcome": "passed", "result": [{"nodeid": "ci-reports", "type": "Dir"}, {"nodeid": "functions", "type": "Package"}, {"nodeid": "tests", "type": "Dir"}]}], "tests": [{"nodeid": "tests/test_io_utils.py::test_read_file", "lineno": 9, "outcome": "passed", "keywords": ["test_read_file", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0030945749022066593, "outcome": "passed"}, "call": {"duration": 0.00045655795838683844, "outcome": "passed"}, "teardown": {"duration": 0.00023347395472228527, "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.00045122706796973944, "outcome": "passed"}, "call": {"duration": 0.0002709140535444021, "outcome": "passed"}, "teardown": {"duration": 0.00015074899420142174, "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.00011305790394544601, "outcome": "passed"}, "call": {"duration": 0.00014978903345763683, "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.00013967498671263456, "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.0001188049791380763, "outcome": "passed"}, "call": {"duration": 0.0001938649220392108, "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.0001453569857403636, "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.00019895797595381737, "outcome": "passed"}, "call": {"duration": 0.0001764290500432253, "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 0x7f7c9bfeeb80>\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.0001687180483713746, "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.0001890889834612608, "outcome": "passed"}, "call": {"duration": 0.0032746070064604282, "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 0x7f7c9e158640>\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.00026654102839529514, "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.00013529998250305653, "outcome": "passed"}, "call": {"duration": 0.00018338696099817753, "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.00017184496391564608, "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.00022960396017879248, "outcome": "passed"}, "call": {"duration": 0.00018053699750453234, "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 0x7f7c9bddb7f0>\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.00018866301979869604, "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.0006322979461401701, "outcome": "passed"}, "call": {"duration": 0.0008573139784857631, "outcome": "passed"}, "teardown": {"duration": 0.00016357190907001495, "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.00013521395158022642, "outcome": "passed"}, "call": {"duration": 0.00017561798449605703, "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.00014276406727731228, "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.00013235700316727161, "outcome": "passed"}, "call": {"duration": 0.00016230996698141098, "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.00013918790500611067, "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.00011965807061642408, "outcome": "passed"}, "call": {"duration": 0.00015563599299639463, "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.00014486501459032297, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[2-2-4]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[2-2-4]", "parametrize", "pytestmark", "2-2-4", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00028897100128233433, "outcome": "passed"}, "call": {"duration": 0.00014517607633024454, "outcome": "passed"}, "teardown": {"duration": 0.0001516880001872778, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[1-5-6]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[1-5-6]", "parametrize", "pytestmark", "1-5-6", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002635400742292404, "outcome": "passed"}, "call": {"duration": 0.00013220403343439102, "outcome": "passed"}, "teardown": {"duration": 0.0001458890037611127, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-7]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[3-4-7]", "parametrize", "pytestmark", "3-4-7", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.000248664990067482, "outcome": "passed"}, "call": {"duration": 0.0001311770174652338, "outcome": "passed"}, "teardown": {"duration": 0.00013519299682229757, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-5-8]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[3-5-8]", "parametrize", "pytestmark", "3-5-8", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.000234995037317276, "outcome": "passed"}, "call": {"duration": 0.00013115000911056995, "outcome": "passed"}, "teardown": {"duration": 0.0001368920784443617, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-6-9]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[3-6-9]", "parametrize", "pytestmark", "3-6-9", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002592899836599827, "outcome": "passed"}, "call": {"duration": 0.00012576894368976355, "outcome": "passed"}, "teardown": {"duration": 0.00013241998385637999, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=2,b=2,expected=4]", "lineno": 36, "outcome": "passed", "keywords": ["test_addition_pass_id[a=2,b=2,expected=4]", "parametrize", "pytestmark", "a=2,b=2,expected=4", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002537210239097476, "outcome": "passed"}, "call": {"duration": 0.00012997398152947426, "outcome": "passed"}, "teardown": {"duration": 0.0001358760055154562, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=1,b=5,expected=6]", "lineno": 36, "outcome": "passed", "keywords": ["test_addition_pass_id[a=1,b=5,expected=6]", "parametrize", "pytestmark", "a=1,b=5,expected=6", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00024325901176780462, "outcome": "passed"}, "call": {"duration": 0.00012497801799327135, "outcome": "passed"}, "teardown": {"duration": 0.00013121706433594227, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=3,b=4,expected=7]", "lineno": 36, "outcome": "passed", "keywords": ["test_addition_pass_id[a=3,b=4,expected=7]", "parametrize", "pytestmark", "a=3,b=4,expected=7", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002527909819036722, "outcome": "passed"}, "call": {"duration": 0.00013031100388616323, "outcome": "passed"}, "teardown": {"duration": 0.0001348840305581689, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "lineno": 48, "outcome": "failed", "keywords": ["test_addition_fail", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011326407548040152, "outcome": "passed"}, "call": {"duration": 0.00039576098788529634, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 51, "message": "assert 4 == 5\n + where 4 = addition(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 51, "message": "AssertionError"}], "longrepr": "def test_addition_fail():\n # Assertion failure: expected incorrect result\n> assert addition(2, 2) == 5\nE assert 4 == 5\nE + where 4 = addition(2, 2)\n\ntests/test_math_utils.py:51: AssertionError"}, "teardown": {"duration": 0.00013215793296694756, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "lineno": 52, "outcome": "failed", "keywords": ["test_division_zero", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001144979614764452, "outcome": "passed"}, "call": {"duration": 0.0001487260451540351, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/functions/math_utils.py", "lineno": 5, "message": "ZeroDivisionError: division by zero"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 55, "message": ""}, {"path": "functions/math_utils.py", "lineno": 5, "message": "ZeroDivisionError"}], "longrepr": "def test_division_zero():\n # Will raise ZeroDivisionError if not handled in division\n> division(1, 0)\n\ntests/test_math_utils.py:55: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\na = 1, b = 0\n\n def division(a, b):\n> return a / b\nE ZeroDivisionError: division by zero\n\nfunctions/math_utils.py:5: ZeroDivisionError"}, "teardown": {"duration": 0.0001357960281893611, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "lineno": 56, "outcome": "xfailed", "keywords": ["test_multiply_xfail", "xfail", "pytestmark", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00013073708396404982, "outcome": "passed"}, "call": {"duration": 0.0002562359441071749, "outcome": "skipped", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 60, "message": "assert 4 == 5\n + where 4 = multiply(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 60, "message": "AssertionError"}], "longrepr": "@pytest.mark.xfail(reason=\"Expected failure\")\n def test_multiply_xfail():\n # Expected fail test (xfail): incorrect expected multiply result\n> assert multiply(2, 2) == 5\nE assert 4 == 5\nE + where 4 = multiply(2, 2)\n\ntests/test_math_utils.py:60: AssertionError"}, "teardown": {"duration": 0.00013726495672017336, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "lineno": 61, "outcome": "failed", "keywords": ["test_runtime_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012192002031952143, "outcome": "passed"}, "call": {"duration": 0.00014745292719453573, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 64, "message": "RuntimeError: Forced runtime error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 64, "message": "RuntimeError"}], "longrepr": "def test_runtime_error():\n # Test raises an uncaught RuntimeError\n> raise RuntimeError(\"Forced runtime error\")\nE RuntimeError: Forced runtime error\n\ntests/test_math_utils.py:64: RuntimeError"}, "teardown": {"duration": 0.00013503700029104948, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "lineno": 65, "outcome": "failed", "keywords": ["test_memory_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011871790047734976, "outcome": "passed"}, "call": {"duration": 0.00014581100549548864, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 68, "message": "MemoryError: Simulated memory error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 68, "message": "MemoryError"}], "longrepr": "def test_memory_error():\n # Manually raise MemoryError to simulate out-of-memory condition\n> raise MemoryError(\"Simulated memory error\")\nE MemoryError: Simulated memory error\n\ntests/test_math_utils.py:68: MemoryError"}, "teardown": {"duration": 0.00013305200263857841, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "lineno": 69, "outcome": "failed", "keywords": ["test_timeout_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001157029764726758, "outcome": "passed"}, "call": {"duration": 0.0001429020194336772, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 72, "message": "TimeoutError: Simulated timeout error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 72, "message": "TimeoutError"}], "longrepr": "def test_timeout_error():\n # Manually raise TimeoutError simulating timeout conditions\n> raise TimeoutError(\"Simulated timeout error\")\nE TimeoutError: Simulated timeout error\n\ntests/test_math_utils.py:72: TimeoutError"}, "teardown": {"duration": 0.000136462040245533, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "lineno": 73, "outcome": "failed", "keywords": ["test_recursion_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001185110304504633, "outcome": "passed"}, "call": {"duration": 0.0007487450493499637, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 77, "message": "RecursionError: maximum recursion depth exceeded"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 78, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 77, "message": "in recursive"}, {"path": "tests/test_math_utils.py", "lineno": 77, "message": "in recursive"}], "longrepr": "def test_recursion_error():\n # Infinite recursion triggers RecursionError\n def recursive():\n return recursive()\n> recursive()\n\ntests/test_math_utils.py:78: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \ntests/test_math_utils.py:77: in recursive\n return recursive()\ntests/test_math_utils.py:77: in recursive\n return recursive()\nE RecursionError: maximum recursion depth exceeded\n!!! Recursion detected (same locals & position)"}, "teardown": {"duration": 0.0001426819944754243, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "lineno": 79, "outcome": "failed", "keywords": ["test_floating_point_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012207799591124058, "outcome": "passed"}, "call": {"duration": 0.000149055034853518, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 82, "message": "FloatingPointError: Simulated floating point error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 82, "message": "FloatingPointError"}], "longrepr": "def test_floating_point_error():\n # Manually raise FloatingPointError\n> raise FloatingPointError(\"Simulated floating point error\")\nE FloatingPointError: Simulated floating point error\n\ntests/test_math_utils.py:82: FloatingPointError"}, "teardown": {"duration": 0.00013744004536420107, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "lineno": 83, "outcome": "failed", "keywords": ["test_floating_point_overflow", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012035807594656944, "outcome": "passed"}, "call": {"duration": 0.00016589800361543894, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 86, "message": "OverflowError: math range error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 86, "message": "OverflowError"}], "longrepr": "def test_floating_point_overflow():\n # Exponential overflow triggers OverflowError\n> math.exp(1000)\nE OverflowError: math range error\n\ntests/test_math_utils.py:86: OverflowError"}, "teardown": {"duration": 0.00013628893066197634, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_value_error", "lineno": 87, "outcome": "failed", "keywords": ["test_value_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.000115199014544487, "outcome": "passed"}, "call": {"duration": 0.00014984700828790665, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 90, "message": "ValueError: invalid literal for int() with base 10: 'invalid'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 90, "message": "ValueError"}], "longrepr": "def test_value_error():\n # ValueError on invalid integer conversion\n> int(\"invalid\")\nE ValueError: invalid literal for int() with base 10: 'invalid'\n\ntests/test_math_utils.py:90: ValueError"}, "teardown": {"duration": 0.00013879104517400265, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_wrong_argument_error", "lineno": 91, "outcome": "failed", "keywords": ["test_wrong_argument_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011630705557763577, "outcome": "passed"}, "call": {"duration": 0.00014825700782239437, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 94, "message": "TypeError: 'int' object is not iterable"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 94, "message": "TypeError"}], "longrepr": "def test_wrong_argument_error():\n # TypeError when passing wrong argument type to sum\n> sum(5)\nE TypeError: 'int' object is not iterable\n\ntests/test_math_utils.py:94: TypeError"}, "teardown": {"duration": 0.00013706099707633257, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "lineno": 95, "outcome": "failed", "keywords": ["test_unhandled_exception", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012199499178677797, "outcome": "passed"}, "call": {"duration": 0.000146702048368752, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 98, "message": "Exception: Generic unhandled exception"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 98, "message": "Exception"}], "longrepr": "def test_unhandled_exception():\n # Raises generic unhandled Exception\n> raise Exception(\"Generic unhandled exception\")\nE Exception: Generic unhandled exception\n\ntests/test_math_utils.py:98: Exception"}, "teardown": {"duration": 0.0001380089670419693, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "lineno": 99, "outcome": "failed", "keywords": ["test_custom_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012132199481129646, "outcome": "passed"}, "call": {"duration": 0.00015873601660132408, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 102, "message": "test_math_utils.CustomError: Custom error simulation"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 102, "message": "CustomError"}], "longrepr": "def test_custom_error():\n # Raises user-defined CustomError exception\n> raise CustomError(\"Custom error simulation\")\nE test_math_utils.CustomError: Custom error simulation\n\ntests/test_math_utils.py:102: CustomError"}, "teardown": {"duration": 0.0001377440057694912, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "lineno": 103, "outcome": "failed", "keywords": ["test_stop_iteration_direct", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012033595703542233, "outcome": "passed"}, "call": {"duration": 0.000149609986692667, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py", "lineno": 880, "message": "RuntimeError: generator raised StopIteration"}, "traceback": [{"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py", "lineno": 341, "message": ""}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py", "lineno": 242, "message": "in "}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/pluggy/_hooks.py", "lineno": 513, "message": "in __call__"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/pluggy/_manager.py", "lineno": 120, "message": "in _hookexec"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py", "lineno": 92, "message": "in pytest_runtest_call"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py", "lineno": 68, "message": "in thread_exception_runtest_hook"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py", "lineno": 95, "message": "in pytest_runtest_call"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py", "lineno": 70, "message": "in unraisable_exception_runtest_hook"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py", "lineno": 846, "message": "in pytest_runtest_call"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py", "lineno": 829, "message": "in _runtest_for"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py", "lineno": 880, "message": "RuntimeError"}], "longrepr": "def test_stop_iteration_direct():\n # Directly raise StopIteration exception\n> raise StopIteration()\nE StopIteration\n\ntests/test_math_utils.py:106: StopIteration\n\nThe above exception was the direct cause of the following exception:\n\ncls = \nfunc = . at 0x7f7c9c3fb700>\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.0002125550527125597, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "lineno": 107, "outcome": "failed", "keywords": ["test_generator_exit_direct", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00013530196156352758, "outcome": "passed"}, "call": {"duration": 0.00016580300871282816, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 110, "message": "GeneratorExit"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 110, "message": "GeneratorExit"}], "longrepr": "def test_generator_exit_direct():\n # Directly raise GeneratorExit exception\n> raise GeneratorExit()\nE GeneratorExit\n\ntests/test_math_utils.py:110: GeneratorExit"}, "teardown": {"duration": 0.0001733059762045741, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "lineno": 111, "outcome": "failed", "keywords": ["test_malformed_code", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001369889359921217, "outcome": "passed"}, "call": {"duration": 0.00016528996638953686, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 114, "message": " File \"\", line 1\n def bad(:\n ^\nSyntaxError: invalid syntax"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 114, "message": "SyntaxError"}], "longrepr": "def test_malformed_code():\n # SyntaxError when executing malformed Python code\n> exec(\"def bad(:\\n pass\")\nE File \"\", line 1\nE def bad(:\nE ^\nE SyntaxError: invalid syntax\n\ntests/test_math_utils.py:114: SyntaxError"}, "teardown": {"duration": 0.00015739502850919962, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "lineno": 115, "outcome": "failed", "keywords": ["test_sys_exit", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012365798465907574, "outcome": "passed"}, "call": {"duration": 0.00015858199913054705, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 118, "message": "SystemExit: 1"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 118, "message": "SystemExit"}], "longrepr": "def test_sys_exit():\n # Simulate SystemExit via sys.exit\n> sys.exit(1)\nE SystemExit: 1\n\ntests/test_math_utils.py:118: SystemExit"}, "teardown": {"duration": 0.00015377101954072714, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "lineno": 119, "outcome": "failed", "keywords": ["test_broken_function", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001291430089622736, "outcome": "passed"}, "call": {"duration": 0.00016004894860088825, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 123, "message": "TypeError: Broken function"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 124, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 123, "message": "TypeError"}], "longrepr": "def test_broken_function():\n # Simulate broken function raising TypeError\n def broken_func(*args, **kwargs):\n raise TypeError(\"Broken function\")\n> broken_func()\n\ntests/test_math_utils.py:124: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nargs = (), kwargs = {}\n\n def broken_func(*args, **kwargs):\n> raise TypeError(\"Broken function\")\nE TypeError: Broken function\n\ntests/test_math_utils.py:123: TypeError"}, "teardown": {"duration": 0.00016661197878420353, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_import_error", "lineno": 125, "outcome": "failed", "keywords": ["test_import_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00014334800653159618, "outcome": "passed"}, "call": {"duration": 0.000163770979270339, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 127, "message": "ImportError: Simulated ImportError"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 127, "message": "ImportError"}], "longrepr": "def test_import_error():\n> raise ImportError(\"Simulated ImportError\")\nE ImportError: Simulated ImportError\n\ntests/test_math_utils.py:127: ImportError"}, "teardown": {"duration": 0.0001576520735397935, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "lineno": 128, "outcome": "failed", "keywords": ["test_module_not_found_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012506800703704357, "outcome": "passed"}, "call": {"duration": 0.000478317029774189, "outcome": "failed", "crash": {"path": "", "lineno": 973, "message": "ModuleNotFoundError: No module named 'non_existent_module_xyz'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 131, "message": ""}, {"path": ".pixi/envs/default/lib/python3.8/importlib/__init__.py", "lineno": 127, "message": "in import_module"}, {"path": "", "lineno": 1014, "message": "in _gcd_import"}, {"path": "", "lineno": 991, "message": "in _find_and_load"}, {"path": "", "lineno": 973, "message": "ModuleNotFoundError"}], "longrepr": "def test_module_not_found_error():\n # Raises ModuleNotFoundError (subclass of ImportError) for missing module\n> importlib.import_module(\"non_existent_module_xyz\")\n\ntests/test_math_utils.py:131: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\n:1014: in _gcd_import\n ???\n:991: in _find_and_load\n ???\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nname = 'non_existent_module_xyz'\nimport_ = \n\n> ???\nE ModuleNotFoundError: No module named 'non_existent_module_xyz'\n\n:973: ModuleNotFoundError"}, "teardown": {"duration": 0.00016295909881591797, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_basic_ids[one]", "lineno": 3, "outcome": "passed", "keywords": ["test_basic_ids[one]", "parametrize", "pytestmark", "one", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00024215399753302336, "outcome": "passed"}, "call": {"duration": 0.0001407819800078869, "outcome": "passed"}, "teardown": {"duration": 0.00013018003664910793, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_basic_ids[two]", "lineno": 3, "outcome": "passed", "keywords": ["test_basic_ids[two]", "parametrize", "pytestmark", "two", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00019932794384658337, "outcome": "passed"}, "call": {"duration": 0.00013893493451178074, "outcome": "passed"}, "teardown": {"duration": 0.0001254350645467639, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_with_reason_and_marks[ten]", "lineno": 11, "outcome": "passed", "keywords": ["test_with_reason_and_marks[ten]", "parametrize", "pytestmark", "ten", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00018506695050746202, "outcome": "passed"}, "call": {"duration": 0.00012912496458739042, "outcome": "passed"}, "teardown": {"duration": 0.00011539401020854712, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_with_reason_and_marks[twenty]", "lineno": 11, "outcome": "skipped", "keywords": ["test_with_reason_and_marks[twenty]", "parametrize", "skip", "pytestmark", "twenty", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00022856297437101603, "outcome": "skipped", "longrepr": "('/workspace/tligui_y/slic/tests/test_param.py', 12, 'Skipped: nope')"}, "teardown": {"duration": 0.00011827400885522366, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_multiple_positional_args[1-2]", "lineno": 19, "outcome": "passed", "keywords": ["test_multiple_positional_args[1-2]", "parametrize", "pytestmark", "1-2", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00021801807451993227, "outcome": "passed"}, "call": {"duration": 0.0001294170506298542, "outcome": "passed"}, "teardown": {"duration": 0.00012675393372774124, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_multiple_positional_args[3-4]", "lineno": 19, "outcome": "passed", "keywords": ["test_multiple_positional_args[3-4]", "parametrize", "pytestmark", "3-4", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00022769300267100334, "outcome": "passed"}, "call": {"duration": 0.00012728595174849033, "outcome": "passed"}, "teardown": {"duration": 0.00012939900625497103, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_non_literal_with_id[custom-obj]", "lineno": 27, "outcome": "passed", "keywords": ["test_non_literal_with_id[custom-obj]", "parametrize", "pytestmark", "custom-obj", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0001566710416227579, "outcome": "passed"}, "call": {"duration": 0.00012339907698333263, "outcome": "passed"}, "teardown": {"duration": 0.00011347199324518442, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_timedistance_v1[a0-b0-expected0]", "lineno": 40, "outcome": "passed", "keywords": ["test_timedistance_v1[a0-b0-expected0]", "parametrize", "pytestmark", "a0-b0-expected0", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0002463760320097208, "outcome": "passed"}, "call": {"duration": 0.00012865697499364614, "outcome": "passed"}, "teardown": {"duration": 0.00013530906289815903, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_timedistance_v1[a1-b1-expected1]", "lineno": 40, "outcome": "passed", "keywords": ["test_timedistance_v1[a1-b1-expected1]", "parametrize", "pytestmark", "a1-b1-expected1", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00024029298219829798, "outcome": "passed"}, "call": {"duration": 0.00012802693527191877, "outcome": "passed"}, "teardown": {"duration": 0.00013867404777556658, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::TestDynamic::test_sum_positive", "lineno": 70, "outcome": "error", "keywords": ["test_sum_positive", "TestDynamic", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00014172005467116833, "outcome": "failed", "longrepr": "file /workspace/tligui_y/slic/tests/test_param.py, line 71\n def test_sum_positive(self, x, y):\nE fixture 'x' not found\n> available fixtures: cache, capfd, capfdbinary, caplog, capsys, capsysbinary, complex_setup, cov, doctest_namespace, element, extra, extras, include_metadata_in_junit_xml, json_metadata, metadata, monkeypatch, no_cover, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory\n> use 'pytest --fixtures [testpath]' for help on them.\n\n/workspace/tligui_y/slic/tests/test_param.py:71"}, "teardown": {"duration": 0.00013289705384522676, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_dynamic[ten]", "lineno": 78, "outcome": "passed", "keywords": ["test_dynamic[ten]", "ten", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0001830519177019596, "outcome": "passed"}, "call": {"duration": 0.00012989796232432127, "outcome": "passed"}, "teardown": {"duration": 0.00011889799498021603, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_dynamic[twenty]", "lineno": 78, "outcome": "passed", "keywords": ["test_dynamic[twenty]", "twenty", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00016345398034900427, "outcome": "passed"}, "call": {"duration": 0.00012829992920160294, "outcome": "passed"}, "teardown": {"duration": 0.00011664198245853186, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_dynamic[thirty]", "lineno": 78, "outcome": "passed", "keywords": ["test_dynamic[thirty]", "thirty", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0001635699300095439, "outcome": "passed"}, "call": {"duration": 0.00012086809147149324, "outcome": "passed"}, "teardown": {"duration": 0.00011111004278063774, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f525]", "lineno": 87, "outcome": "passed", "keywords": ["test_element_type[\\U0001f525]", "\\U0001f525", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00018057296983897686, "outcome": "passed"}, "call": {"duration": 0.00012491503730416298, "outcome": "passed"}, "teardown": {"duration": 0.00011564698070287704, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f4a7]", "lineno": 87, "outcome": "passed", "keywords": ["test_element_type[\\U0001f4a7]", "\\U0001f4a7", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00017015694174915552, "outcome": "passed"}, "call": {"duration": 0.00012139591854065657, "outcome": "passed"}, "teardown": {"duration": 0.00011556304525583982, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f30d]", "lineno": 87, "outcome": "passed", "keywords": ["test_element_type[\\U0001f30d]", "\\U0001f30d", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00016361300367861986, "outcome": "passed"}, "call": {"duration": 0.00012301607057452202, "outcome": "passed"}, "teardown": {"duration": 0.00011423404794186354, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_combination[a-1]", "lineno": 90, "outcome": "passed", "keywords": ["test_combination[a-1]", "parametrize", "pytestmark", "a-1", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0002166170161217451, "outcome": "passed"}, "call": {"duration": 0.000128492945805192, "outcome": "passed"}, "teardown": {"duration": 0.00012786604929715395, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_combination[a-2]", "lineno": 90, "outcome": "passed", "keywords": ["test_combination[a-2]", "parametrize", "pytestmark", "a-2", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00019811198581010103, "outcome": "passed"}, "call": {"duration": 0.00012375600636005402, "outcome": "passed"}, "teardown": {"duration": 0.00013050506822764874, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_combination[b-1]", "lineno": 90, "outcome": "passed", "keywords": ["test_combination[b-1]", "parametrize", "pytestmark", "b-1", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0002045569708570838, "outcome": "passed"}, "call": {"duration": 0.00012367591261863708, "outcome": "passed"}, "teardown": {"duration": 0.0001215559896081686, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_combination[b-2]", "lineno": 90, "outcome": "passed", "keywords": ["test_combination[b-2]", "parametrize", "pytestmark", "b-2", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0002129790373146534, "outcome": "passed"}, "call": {"duration": 0.00012761703692376614, "outcome": "passed"}, "teardown": {"duration": 0.0001256139948964119, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_indirect_fixture[1]", "lineno": 100, "outcome": "passed", "keywords": ["test_indirect_fixture[1]", "parametrize", "pytestmark", "1", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0001580060925334692, "outcome": "passed"}, "call": {"duration": 0.0001302680466324091, "outcome": "passed"}, "teardown": {"duration": 0.00027987302746623755, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_indirect_fixture[2]", "lineno": 100, "outcome": "passed", "keywords": ["test_indirect_fixture[2]", "parametrize", "pytestmark", "2", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00018331094179302454, "outcome": "passed"}, "call": {"duration": 0.00013011193368583918, "outcome": "passed"}, "teardown": {"duration": 0.00011838495265692472, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_addition", "lineno": 104, "outcome": "failed", "keywords": ["test_addition", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00011859298683702946, "outcome": "passed"}, "call": {"duration": 0.00015351001638919115, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_param.py", "lineno": 107, "message": "NameError: name 'addition' is not defined"}, "traceback": [{"path": "tests/test_param.py", "lineno": 107, "message": "NameError"}], "longrepr": "a = 5, b = 5, expected = 10\n\n def test_addition(a = 5, b = 5, expected = 10):\n # Has to pass\n> assert addition(a, b) == expected\nE NameError: name 'addition' is not defined\n\ntests/test_param.py:107: NameError"}, "teardown": {"duration": 0.00014142808504402637, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_uppercase_normal", "lineno": 9, "outcome": "passed", "keywords": ["test_uppercase_normal", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012968492228537798, "outcome": "passed"}, "call": {"duration": 0.00014042598195374012, "outcome": "passed"}, "teardown": {"duration": 0.00010028202086687088, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_uppercase_type_error", "lineno": 13, "outcome": "failed", "keywords": ["test_uppercase_type_error", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011451297905296087, "outcome": "passed"}, "call": {"duration": 0.00014382100198417902, "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": 16, "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:16: \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.000135448994114995, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_reverse_string", "lineno": 17, "outcome": "passed", "keywords": ["test_reverse_string", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011655106209218502, "outcome": "passed"}, "call": {"duration": 0.0001367910299450159, "outcome": "passed"}, "teardown": {"duration": 9.896396659314632e-05, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_warning_emit", "lineno": 21, "outcome": "passed", "keywords": ["test_warning_emit", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00010447704698890448, "outcome": "passed"}, "call": {"duration": 0.0001405010698363185, "outcome": "passed"}, "teardown": {"duration": 9.625300299376249e-05, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_error", "lineno": 25, "outcome": "failed", "keywords": ["test_unicode_decode_error", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011937599629163742, "outcome": "passed"}, "call": {"duration": 0.00014612905215471983, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 28, "message": "UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 28, "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:28: UnicodeDecodeError"}, "teardown": {"duration": 0.00013408297672867775, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_surrogateescape", "lineno": 29, "outcome": "failed", "keywords": ["test_unicode_decode_surrogateescape", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011775200255215168, "outcome": "passed"}, "call": {"duration": 0.00016237609088420868, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 32, "message": "UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 32, "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:32: UnicodeDecodeError"}, "teardown": {"duration": 0.00013377901632338762, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_import_warning", "lineno": 33, "outcome": "passed", "keywords": ["test_import_warning", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011959206312894821, "outcome": "passed"}, "call": {"duration": 0.00014226697385311127, "outcome": "passed"}, "teardown": {"duration": 0.00010301300790160894, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_xfail_uppercase_digits", "lineno": 37, "outcome": "xfailed", "keywords": ["test_xfail_uppercase_digits", "xfail", "pytestmark", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011613895185291767, "outcome": "passed"}, "call": {"duration": 0.0005602469900622964, "outcome": "skipped", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 41, "message": "AssertionError: assert 'ABC123' == 'ABC1234'\n \n - ABC1234\n ? -\n + ABC123"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 41, "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:41: AssertionError"}, "teardown": {"duration": 0.000133957015350461, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_keyboard_interrupt_direct", "lineno": 49, "outcome": "passed", "keywords": ["test_keyboard_interrupt_direct", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011627702042460442, "outcome": "passed"}}], "warnings": [{"message": "Test warning", "category": "UserWarning", "when": "runtest", "filename": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 24}]}
\ No newline at end of file
+{"created": 1752757060.0614815, "duration": 0.7686643600463867, "exitcode": 2, "root": "/workspace/tligui_y/slic", "environment": {}, "summary": {"passed": 36, "failed": 32, "xfailed": 2, "skipped": 1, "error": 1, "total": 72, "collected": 72}, "collectors": [{"nodeid": "", "outcome": "passed", "result": [{"nodeid": ".", "type": "Dir"}]}, {"nodeid": "ci-reports/allure/data", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/export", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/history", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/plugin/behaviors", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/plugin/packages", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/plugin/screen-diff", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/plugin", "outcome": "passed", "result": [{"nodeid": "ci-reports/allure/plugin/behaviors", "type": "Dir"}, {"nodeid": "ci-reports/allure/plugin/packages", "type": "Dir"}, {"nodeid": "ci-reports/allure/plugin/screen-diff", "type": "Dir"}]}, {"nodeid": "ci-reports/allure/widgets", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure", "outcome": "passed", "result": [{"nodeid": "ci-reports/allure/data", "type": "Dir"}, {"nodeid": "ci-reports/allure/export", "type": "Dir"}, {"nodeid": "ci-reports/allure/history", "type": "Dir"}, {"nodeid": "ci-reports/allure/plugin", "type": "Dir"}, {"nodeid": "ci-reports/allure/widgets", "type": "Dir"}]}, {"nodeid": "ci-reports/coverage", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/markdown", "outcome": "passed", "result": []}, {"nodeid": "ci-reports", "outcome": "passed", "result": [{"nodeid": "ci-reports/allure", "type": "Dir"}, {"nodeid": "ci-reports/coverage", "type": "Dir"}, {"nodeid": "ci-reports/markdown", "type": "Dir"}]}, {"nodeid": "functions", "outcome": "passed", "result": []}, {"nodeid": "tests/test_broken_fct.py", "outcome": "failed", "result": [], "longrepr": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/python.py:493: in importtestmodule\n mod = import_path(\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/pathlib.py:587: in import_path\n importlib.import_module(module_name)\n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\n:1014: in _gcd_import\n ???\n:991: in _find_and_load\n ???\n:975: in _find_and_load_unlocked\n ???\n:671: in _load_unlocked\n ???\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rewrite.py:175: in exec_module\n source_stat, co = _rewrite_test(fn, self.config)\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rewrite.py:355: in _rewrite_test\n tree = ast.parse(source, filename=strfn)\n.pixi/envs/default/lib/python3.8/ast.py:47: in parse\n return compile(source, filename, mode, flags,\nE File \"/workspace/tligui_y/slic/tests/test_broken_fct.py\", line 8\nE def test_valid_2():\nE ^\nE SyntaxError: invalid syntax"}, {"nodeid": "tests/test_collector_error.py", "outcome": "failed", "result": [], "longrepr": "ImportError while importing test module '/workspace/tligui_y/slic/tests/test_collector_error.py'.\nHint: make sure your test modules/packages have valid Python names.\nTraceback:\n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\ntests/test_collector_error.py:1: in \n from no_existing_module.math_utils import *\nE ModuleNotFoundError: No module named 'no_existing_module'"}, {"nodeid": "tests/test_io_utils.py", "outcome": "passed", "result": [{"nodeid": "tests/test_io_utils.py::test_read_file", "type": "Function", "lineno": 9}, {"nodeid": "tests/test_io_utils.py::test_write_file", "type": "Function", "lineno": 16}, {"nodeid": "tests/test_io_utils.py::test_cause_io_error", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_io_utils.py::test_file_not_found", "type": "Function", "lineno": 26}, {"nodeid": "tests/test_io_utils.py::test_permission_error", "type": "Function", "lineno": 30}, {"nodeid": "tests/test_io_utils.py::test_mock_open_error", "type": "Function", "lineno": 37}, {"nodeid": "tests/test_io_utils.py::test_file_handle_closed_error", "type": "Function", "lineno": 45}, {"nodeid": "tests/test_io_utils.py::test_os_error", "type": "Function", "lineno": 51}, {"nodeid": "tests/test_io_utils.py::test_write_file_readonly", "type": "Function", "lineno": 58}, {"nodeid": "tests/test_io_utils.py::test_file_not_found_error", "type": "Function", "lineno": 66}]}, {"nodeid": "tests/test_math_utils.py", "outcome": "passed", "result": [{"nodeid": "tests/test_math_utils.py::test_broken", "type": "Function", "lineno": 13}, {"nodeid": "tests/test_math_utils.py::test_call_missing_function", "type": "Function", "lineno": 17}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[2-2-4]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[1-5-6]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-7]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-5-8]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-6-9]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=2,b=2,expected=4]", "type": "Function", "lineno": 36}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=1,b=5,expected=6]", "type": "Function", "lineno": 36}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=3,b=4,expected=7]", "type": "Function", "lineno": 36}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "type": "Function", "lineno": 48}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "type": "Function", "lineno": 52}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "type": "Function", "lineno": 56}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "type": "Function", "lineno": 61}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "type": "Function", "lineno": 65}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "type": "Function", "lineno": 69}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "type": "Function", "lineno": 73}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "type": "Function", "lineno": 79}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "type": "Function", "lineno": 83}, {"nodeid": "tests/test_math_utils.py::test_value_error", "type": "Function", "lineno": 87}, {"nodeid": "tests/test_math_utils.py::test_wrong_argument_error", "type": "Function", "lineno": 91}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "type": "Function", "lineno": 95}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "type": "Function", "lineno": 99}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "type": "Function", "lineno": 103}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "type": "Function", "lineno": 107}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "type": "Function", "lineno": 111}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "type": "Function", "lineno": 115}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "type": "Function", "lineno": 119}, {"nodeid": "tests/test_math_utils.py::test_import_error", "type": "Function", "lineno": 125}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "type": "Function", "lineno": 128}]}, {"nodeid": "tests/test_param.py::TestDynamic", "outcome": "passed", "result": [{"nodeid": "tests/test_param.py::TestDynamic::test_sum_positive", "type": "Function", "lineno": 70}]}, {"nodeid": "tests/test_param.py", "outcome": "passed", "result": [{"nodeid": "tests/test_param.py::test_basic_ids[one]", "type": "Function", "lineno": 3}, {"nodeid": "tests/test_param.py::test_basic_ids[two]", "type": "Function", "lineno": 3}, {"nodeid": "tests/test_param.py::test_with_reason_and_marks[ten]", "type": "Function", "lineno": 11}, {"nodeid": "tests/test_param.py::test_with_reason_and_marks[twenty]", "type": "Function", "lineno": 11}, {"nodeid": "tests/test_param.py::test_multiple_positional_args[1-2]", "type": "Function", "lineno": 19}, {"nodeid": "tests/test_param.py::test_multiple_positional_args[3-4]", "type": "Function", "lineno": 19}, {"nodeid": "tests/test_param.py::test_non_literal_with_id[custom-obj]", "type": "Function", "lineno": 27}, {"nodeid": "tests/test_param.py::test_timedistance_v1[a0-b0-expected0]", "type": "Function", "lineno": 40}, {"nodeid": "tests/test_param.py::test_timedistance_v1[a1-b1-expected1]", "type": "Function", "lineno": 40}, {"nodeid": "tests/test_param.py::TestDynamic", "type": "Class"}, {"nodeid": "tests/test_param.py::test_dynamic[ten]", "type": "Function", "lineno": 78}, {"nodeid": "tests/test_param.py::test_dynamic[twenty]", "type": "Function", "lineno": 78}, {"nodeid": "tests/test_param.py::test_dynamic[thirty]", "type": "Function", "lineno": 78}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f525]", "type": "Function", "lineno": 87}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f4a7]", "type": "Function", "lineno": 87}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f30d]", "type": "Function", "lineno": 87}, {"nodeid": "tests/test_param.py::test_combination[a-1]", "type": "Function", "lineno": 90}, {"nodeid": "tests/test_param.py::test_combination[a-2]", "type": "Function", "lineno": 90}, {"nodeid": "tests/test_param.py::test_combination[b-1]", "type": "Function", "lineno": 90}, {"nodeid": "tests/test_param.py::test_combination[b-2]", "type": "Function", "lineno": 90}, {"nodeid": "tests/test_param.py::test_indirect_fixture[1]", "type": "Function", "lineno": 100}, {"nodeid": "tests/test_param.py::test_indirect_fixture[2]", "type": "Function", "lineno": 100}, {"nodeid": "tests/test_param.py::test_addition", "type": "Function", "lineno": 104}]}, {"nodeid": "tests/test_string_utils.py", "outcome": "passed", "result": [{"nodeid": "tests/test_string_utils.py::test_uppercase_normal", "type": "Function", "lineno": 9}, {"nodeid": "tests/test_string_utils.py::test_uppercase_type_error", "type": "Function", "lineno": 13}, {"nodeid": "tests/test_string_utils.py::test_reverse_string", "type": "Function", "lineno": 17}, {"nodeid": "tests/test_string_utils.py::test_warning_emit", "type": "Function", "lineno": 21}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_error", "type": "Function", "lineno": 25}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_surrogateescape", "type": "Function", "lineno": 29}, {"nodeid": "tests/test_string_utils.py::test_import_warning", "type": "Function", "lineno": 33}, {"nodeid": "tests/test_string_utils.py::test_xfail_uppercase_digits", "type": "Function", "lineno": 37}, {"nodeid": "tests/test_string_utils.py::test_keyboard_interrupt_direct", "type": "Function", "lineno": 49}]}, {"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_param.py", "type": "Module"}, {"nodeid": "tests/test_string_utils.py", "type": "Module"}]}, {"nodeid": ".", "outcome": "passed", "result": [{"nodeid": "ci-reports", "type": "Dir"}, {"nodeid": "functions", "type": "Package"}, {"nodeid": "tests", "type": "Dir"}]}], "tests": [{"nodeid": "tests/test_io_utils.py::test_read_file", "lineno": 9, "outcome": "passed", "keywords": ["test_read_file", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.003061530995182693, "outcome": "passed"}, "call": {"duration": 0.00040166592225432396, "outcome": "passed"}, "teardown": {"duration": 0.0002309569390490651, "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.0004485159879550338, "outcome": "passed"}, "call": {"duration": 0.0002946000313386321, "outcome": "passed"}, "teardown": {"duration": 0.00013904098886996508, "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.00011115300003439188, "outcome": "passed"}, "call": {"duration": 0.00016092800069600344, "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.00013689196202903986, "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.00011640496086329222, "outcome": "passed"}, "call": {"duration": 0.00017964199651032686, "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.000135085079818964, "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.000195822911337018, "outcome": "passed"}, "call": {"duration": 0.00017941906116902828, "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 0x7f0a92d4b520>\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.0001630149781703949, "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.0001875460147857666, "outcome": "passed"}, "call": {"duration": 0.0031941679771989584, "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 0x7f0a92d76550>\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.00032785895746201277, "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.00014014600310474634, "outcome": "passed"}, "call": {"duration": 0.00019203894771635532, "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.0002131899818778038, "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.0002949860645458102, "outcome": "passed"}, "call": {"duration": 0.00020159303676337004, "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 0x7f0a92d76a30>\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.00020143704023212194, "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.0007073919987305999, "outcome": "passed"}, "call": {"duration": 0.0009686429984867573, "outcome": "passed"}, "teardown": {"duration": 0.00015265005640685558, "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.00012058299034833908, "outcome": "passed"}, "call": {"duration": 0.00017363904044032097, "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.00017369992565363646, "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.00013829104136675596, "outcome": "passed"}, "call": {"duration": 0.00016320100985467434, "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.00014692696277052164, "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.00016260810662060976, "outcome": "passed"}, "call": {"duration": 0.0001658709952607751, "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.00015413598157465458, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[2-2-4]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[2-2-4]", "parametrize", "pytestmark", "2-2-4", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0003402769798412919, "outcome": "passed"}, "call": {"duration": 0.00015228299889713526, "outcome": "passed"}, "teardown": {"duration": 0.00016410311218351126, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[1-5-6]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[1-5-6]", "parametrize", "pytestmark", "1-5-6", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00026776595041155815, "outcome": "passed"}, "call": {"duration": 0.00015462294686585665, "outcome": "passed"}, "teardown": {"duration": 0.00014649296645075083, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-7]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[3-4-7]", "parametrize", "pytestmark", "3-4-7", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00025113194715231657, "outcome": "passed"}, "call": {"duration": 0.0001401189947500825, "outcome": "passed"}, "teardown": {"duration": 0.00014662707690149546, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-5-8]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[3-5-8]", "parametrize", "pytestmark", "3-5-8", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002509730402380228, "outcome": "passed"}, "call": {"duration": 0.0001332019455730915, "outcome": "passed"}, "teardown": {"duration": 0.00013469799887388945, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-6-9]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[3-6-9]", "parametrize", "pytestmark", "3-6-9", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00024719990324229, "outcome": "passed"}, "call": {"duration": 0.00013244303409010172, "outcome": "passed"}, "teardown": {"duration": 0.00019871501717716455, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=2,b=2,expected=4]", "lineno": 36, "outcome": "passed", "keywords": ["test_addition_pass_id[a=2,b=2,expected=4]", "parametrize", "pytestmark", "a=2,b=2,expected=4", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00026122794952243567, "outcome": "passed"}, "call": {"duration": 0.00013164302799850702, "outcome": "passed"}, "teardown": {"duration": 0.00013964902609586716, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=1,b=5,expected=6]", "lineno": 36, "outcome": "passed", "keywords": ["test_addition_pass_id[a=1,b=5,expected=6]", "parametrize", "pytestmark", "a=1,b=5,expected=6", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002579230349510908, "outcome": "passed"}, "call": {"duration": 0.00012996303848922253, "outcome": "passed"}, "teardown": {"duration": 0.0001324209151789546, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=3,b=4,expected=7]", "lineno": 36, "outcome": "passed", "keywords": ["test_addition_pass_id[a=3,b=4,expected=7]", "parametrize", "pytestmark", "a=3,b=4,expected=7", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00025008199736475945, "outcome": "passed"}, "call": {"duration": 0.00012540805619210005, "outcome": "passed"}, "teardown": {"duration": 0.00014230795204639435, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "lineno": 48, "outcome": "failed", "keywords": ["test_addition_fail", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00013091193977743387, "outcome": "passed"}, "call": {"duration": 0.0004954959731549025, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 51, "message": "assert 4 == 5\n + where 4 = addition(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 51, "message": "AssertionError"}], "longrepr": "def test_addition_fail():\n # Assertion failure: expected incorrect result\n> assert addition(2, 2) == 5\nE assert 4 == 5\nE + where 4 = addition(2, 2)\n\ntests/test_math_utils.py:51: AssertionError"}, "teardown": {"duration": 0.00015981006436049938, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "lineno": 52, "outcome": "failed", "keywords": ["test_division_zero", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012887094635516405, "outcome": "passed"}, "call": {"duration": 0.00017330003902316093, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/functions/math_utils.py", "lineno": 5, "message": "ZeroDivisionError: division by zero"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 55, "message": ""}, {"path": "functions/math_utils.py", "lineno": 5, "message": "ZeroDivisionError"}], "longrepr": "def test_division_zero():\n # Will raise ZeroDivisionError if not handled in division\n> division(1, 0)\n\ntests/test_math_utils.py:55: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\na = 1, b = 0\n\n def division(a, b):\n> return a / b\nE ZeroDivisionError: division by zero\n\nfunctions/math_utils.py:5: ZeroDivisionError"}, "teardown": {"duration": 0.00015743891708552837, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "lineno": 56, "outcome": "xfailed", "keywords": ["test_multiply_xfail", "xfail", "pytestmark", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00015089497901499271, "outcome": "passed"}, "call": {"duration": 0.0003022280288860202, "outcome": "skipped", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 60, "message": "assert 4 == 5\n + where 4 = multiply(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 60, "message": "AssertionError"}], "longrepr": "@pytest.mark.xfail(reason=\"Expected failure\")\n def test_multiply_xfail():\n # Expected fail test (xfail): incorrect expected multiply result\n> assert multiply(2, 2) == 5\nE assert 4 == 5\nE + where 4 = multiply(2, 2)\n\ntests/test_math_utils.py:60: AssertionError"}, "teardown": {"duration": 0.0001838579773902893, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "lineno": 61, "outcome": "failed", "keywords": ["test_runtime_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00013021891936659813, "outcome": "passed"}, "call": {"duration": 0.00016132695600390434, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 64, "message": "RuntimeError: Forced runtime error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 64, "message": "RuntimeError"}], "longrepr": "def test_runtime_error():\n # Test raises an uncaught RuntimeError\n> raise RuntimeError(\"Forced runtime error\")\nE RuntimeError: Forced runtime error\n\ntests/test_math_utils.py:64: RuntimeError"}, "teardown": {"duration": 0.00017315102741122246, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "lineno": 65, "outcome": "failed", "keywords": ["test_memory_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00013186107389628887, "outcome": "passed"}, "call": {"duration": 0.00018722598906606436, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 68, "message": "MemoryError: Simulated memory error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 68, "message": "MemoryError"}], "longrepr": "def test_memory_error():\n # Manually raise MemoryError to simulate out-of-memory condition\n> raise MemoryError(\"Simulated memory error\")\nE MemoryError: Simulated memory error\n\ntests/test_math_utils.py:68: MemoryError"}, "teardown": {"duration": 0.00016550999134778976, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "lineno": 69, "outcome": "failed", "keywords": ["test_timeout_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00014301505871117115, "outcome": "passed"}, "call": {"duration": 0.00015760294627398252, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 72, "message": "TimeoutError: Simulated timeout error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 72, "message": "TimeoutError"}], "longrepr": "def test_timeout_error():\n # Manually raise TimeoutError simulating timeout conditions\n> raise TimeoutError(\"Simulated timeout error\")\nE TimeoutError: Simulated timeout error\n\ntests/test_math_utils.py:72: TimeoutError"}, "teardown": {"duration": 0.00014451099559664726, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "lineno": 73, "outcome": "failed", "keywords": ["test_recursion_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001292990054935217, "outcome": "passed"}, "call": {"duration": 0.0009431469952687621, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 77, "message": "RecursionError: maximum recursion depth exceeded"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 78, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 77, "message": "in recursive"}, {"path": "tests/test_math_utils.py", "lineno": 77, "message": "in recursive"}], "longrepr": "def test_recursion_error():\n # Infinite recursion triggers RecursionError\n def recursive():\n return recursive()\n> recursive()\n\ntests/test_math_utils.py:78: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \ntests/test_math_utils.py:77: in recursive\n return recursive()\ntests/test_math_utils.py:77: in recursive\n return recursive()\nE RecursionError: maximum recursion depth exceeded\n!!! Recursion detected (same locals & position)"}, "teardown": {"duration": 0.0001559760421514511, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "lineno": 79, "outcome": "failed", "keywords": ["test_floating_point_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001294909743592143, "outcome": "passed"}, "call": {"duration": 0.00016297795809805393, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 82, "message": "FloatingPointError: Simulated floating point error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 82, "message": "FloatingPointError"}], "longrepr": "def test_floating_point_error():\n # Manually raise FloatingPointError\n> raise FloatingPointError(\"Simulated floating point error\")\nE FloatingPointError: Simulated floating point error\n\ntests/test_math_utils.py:82: FloatingPointError"}, "teardown": {"duration": 0.0001409549731761217, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "lineno": 83, "outcome": "failed", "keywords": ["test_floating_point_overflow", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00013170798774808645, "outcome": "passed"}, "call": {"duration": 0.0001817760057747364, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 86, "message": "OverflowError: math range error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 86, "message": "OverflowError"}], "longrepr": "def test_floating_point_overflow():\n # Exponential overflow triggers OverflowError\n> math.exp(1000)\nE OverflowError: math range error\n\ntests/test_math_utils.py:86: OverflowError"}, "teardown": {"duration": 0.00015668000560253859, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_value_error", "lineno": 87, "outcome": "failed", "keywords": ["test_value_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012792192865163088, "outcome": "passed"}, "call": {"duration": 0.00016239506658166647, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 90, "message": "ValueError: invalid literal for int() with base 10: 'invalid'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 90, "message": "ValueError"}], "longrepr": "def test_value_error():\n # ValueError on invalid integer conversion\n> int(\"invalid\")\nE ValueError: invalid literal for int() with base 10: 'invalid'\n\ntests/test_math_utils.py:90: ValueError"}, "teardown": {"duration": 0.0001453660661354661, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_wrong_argument_error", "lineno": 91, "outcome": "failed", "keywords": ["test_wrong_argument_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012796197552233934, "outcome": "passed"}, "call": {"duration": 0.00015692110173404217, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 94, "message": "TypeError: 'int' object is not iterable"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 94, "message": "TypeError"}], "longrepr": "def test_wrong_argument_error():\n # TypeError when passing wrong argument type to sum\n> sum(5)\nE TypeError: 'int' object is not iterable\n\ntests/test_math_utils.py:94: TypeError"}, "teardown": {"duration": 0.00014484603889286518, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "lineno": 95, "outcome": "failed", "keywords": ["test_unhandled_exception", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012910098303109407, "outcome": "passed"}, "call": {"duration": 0.0001633589854463935, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 98, "message": "Exception: Generic unhandled exception"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 98, "message": "Exception"}], "longrepr": "def test_unhandled_exception():\n # Raises generic unhandled Exception\n> raise Exception(\"Generic unhandled exception\")\nE Exception: Generic unhandled exception\n\ntests/test_math_utils.py:98: Exception"}, "teardown": {"duration": 0.00014827994164079428, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "lineno": 99, "outcome": "failed", "keywords": ["test_custom_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.000127198058180511, "outcome": "passed"}, "call": {"duration": 0.0001688649645075202, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 102, "message": "test_math_utils.CustomError: Custom error simulation"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 102, "message": "CustomError"}], "longrepr": "def test_custom_error():\n # Raises user-defined CustomError exception\n> raise CustomError(\"Custom error simulation\")\nE test_math_utils.CustomError: Custom error simulation\n\ntests/test_math_utils.py:102: CustomError"}, "teardown": {"duration": 0.00015202700160443783, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "lineno": 103, "outcome": "failed", "keywords": ["test_stop_iteration_direct", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012734101619571447, "outcome": "passed"}, "call": {"duration": 0.0001584240235388279, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py", "lineno": 880, "message": "RuntimeError: generator raised StopIteration"}, "traceback": [{"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py", "lineno": 341, "message": ""}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py", "lineno": 242, "message": "in "}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/pluggy/_hooks.py", "lineno": 513, "message": "in __call__"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/pluggy/_manager.py", "lineno": 120, "message": "in _hookexec"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py", "lineno": 92, "message": "in pytest_runtest_call"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py", "lineno": 68, "message": "in thread_exception_runtest_hook"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py", "lineno": 95, "message": "in pytest_runtest_call"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py", "lineno": 70, "message": "in unraisable_exception_runtest_hook"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py", "lineno": 846, "message": "in pytest_runtest_call"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py", "lineno": 829, "message": "in _runtest_for"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py", "lineno": 880, "message": "RuntimeError"}], "longrepr": "def test_stop_iteration_direct():\n # Directly raise StopIteration exception\n> raise StopIteration()\nE StopIteration\n\ntests/test_math_utils.py:106: StopIteration\n\nThe above exception was the direct cause of the following exception:\n\ncls = \nfunc = . at 0x7f0a928fb700>\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.0002604519249871373, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "lineno": 107, "outcome": "failed", "keywords": ["test_generator_exit_direct", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.000176700996235013, "outcome": "passed"}, "call": {"duration": 0.00018002605065703392, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 110, "message": "GeneratorExit"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 110, "message": "GeneratorExit"}], "longrepr": "def test_generator_exit_direct():\n # Directly raise GeneratorExit exception\n> raise GeneratorExit()\nE GeneratorExit\n\ntests/test_math_utils.py:110: GeneratorExit"}, "teardown": {"duration": 0.00018354994244873524, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "lineno": 111, "outcome": "failed", "keywords": ["test_malformed_code", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00015007692854851484, "outcome": "passed"}, "call": {"duration": 0.00017871602904051542, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 114, "message": " File \"\", line 1\n def bad(:\n ^\nSyntaxError: invalid syntax"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 114, "message": "SyntaxError"}], "longrepr": "def test_malformed_code():\n # SyntaxError when executing malformed Python code\n> exec(\"def bad(:\\n pass\")\nE File \"\", line 1\nE def bad(:\nE ^\nE SyntaxError: invalid syntax\n\ntests/test_math_utils.py:114: SyntaxError"}, "teardown": {"duration": 0.0001655110390856862, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "lineno": 115, "outcome": "failed", "keywords": ["test_sys_exit", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00013621198013424873, "outcome": "passed"}, "call": {"duration": 0.00016006897203624249, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 118, "message": "SystemExit: 1"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 118, "message": "SystemExit"}], "longrepr": "def test_sys_exit():\n # Simulate SystemExit via sys.exit\n> sys.exit(1)\nE SystemExit: 1\n\ntests/test_math_utils.py:118: SystemExit"}, "teardown": {"duration": 0.0001537570497021079, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "lineno": 119, "outcome": "failed", "keywords": ["test_broken_function", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012668000999838114, "outcome": "passed"}, "call": {"duration": 0.00017143308650702238, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 123, "message": "TypeError: Broken function"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 124, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 123, "message": "TypeError"}], "longrepr": "def test_broken_function():\n # Simulate broken function raising TypeError\n def broken_func(*args, **kwargs):\n raise TypeError(\"Broken function\")\n> broken_func()\n\ntests/test_math_utils.py:124: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nargs = (), kwargs = {}\n\n def broken_func(*args, **kwargs):\n> raise TypeError(\"Broken function\")\nE TypeError: Broken function\n\ntests/test_math_utils.py:123: TypeError"}, "teardown": {"duration": 0.000167321995832026, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_import_error", "lineno": 125, "outcome": "failed", "keywords": ["test_import_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001259640557691455, "outcome": "passed"}, "call": {"duration": 0.000156253925524652, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 127, "message": "ImportError: Simulated ImportError"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 127, "message": "ImportError"}], "longrepr": "def test_import_error():\n> raise ImportError(\"Simulated ImportError\")\nE ImportError: Simulated ImportError\n\ntests/test_math_utils.py:127: ImportError"}, "teardown": {"duration": 0.00014695292338728905, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "lineno": 128, "outcome": "failed", "keywords": ["test_module_not_found_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001394529826939106, "outcome": "passed"}, "call": {"duration": 0.0005187669303268194, "outcome": "failed", "crash": {"path": "", "lineno": 973, "message": "ModuleNotFoundError: No module named 'non_existent_module_xyz'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 131, "message": ""}, {"path": ".pixi/envs/default/lib/python3.8/importlib/__init__.py", "lineno": 127, "message": "in import_module"}, {"path": "", "lineno": 1014, "message": "in _gcd_import"}, {"path": "", "lineno": 991, "message": "in _find_and_load"}, {"path": "", "lineno": 973, "message": "ModuleNotFoundError"}], "longrepr": "def test_module_not_found_error():\n # Raises ModuleNotFoundError (subclass of ImportError) for missing module\n> importlib.import_module(\"non_existent_module_xyz\")\n\ntests/test_math_utils.py:131: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\n:1014: in _gcd_import\n ???\n:991: in _find_and_load\n ???\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nname = 'non_existent_module_xyz'\nimport_ = \n\n> ???\nE ModuleNotFoundError: No module named 'non_existent_module_xyz'\n\n:973: ModuleNotFoundError"}, "teardown": {"duration": 0.00015894498210400343, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_basic_ids[one]", "lineno": 3, "outcome": "passed", "keywords": ["test_basic_ids[one]", "parametrize", "pytestmark", "one", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0002617130521684885, "outcome": "passed"}, "call": {"duration": 0.00015065399929881096, "outcome": "passed"}, "teardown": {"duration": 0.0001631900668144226, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_basic_ids[two]", "lineno": 3, "outcome": "passed", "keywords": ["test_basic_ids[two]", "parametrize", "pytestmark", "two", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00019936100579798222, "outcome": "passed"}, "call": {"duration": 0.00013418507296591997, "outcome": "passed"}, "teardown": {"duration": 0.0001264300663024187, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_with_reason_and_marks[ten]", "lineno": 11, "outcome": "passed", "keywords": ["test_with_reason_and_marks[ten]", "parametrize", "pytestmark", "ten", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00017676001880317926, "outcome": "passed"}, "call": {"duration": 0.00014559307601302862, "outcome": "passed"}, "teardown": {"duration": 0.00012384506408125162, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_with_reason_and_marks[twenty]", "lineno": 11, "outcome": "skipped", "keywords": ["test_with_reason_and_marks[twenty]", "parametrize", "skip", "pytestmark", "twenty", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00023672799579799175, "outcome": "skipped", "longrepr": "('/workspace/tligui_y/slic/tests/test_param.py', 12, 'Skipped: nope')"}, "teardown": {"duration": 0.00012518500443547964, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_multiple_positional_args[1-2]", "lineno": 19, "outcome": "passed", "keywords": ["test_multiple_positional_args[1-2]", "parametrize", "pytestmark", "1-2", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00023974699433892965, "outcome": "passed"}, "call": {"duration": 0.00014940695837140083, "outcome": "passed"}, "teardown": {"duration": 0.00013794400729238987, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_multiple_positional_args[3-4]", "lineno": 19, "outcome": "passed", "keywords": ["test_multiple_positional_args[3-4]", "parametrize", "pytestmark", "3-4", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00020986096933484077, "outcome": "passed"}, "call": {"duration": 0.00014582695439457893, "outcome": "passed"}, "teardown": {"duration": 0.00013537402264773846, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_non_literal_with_id[custom-obj]", "lineno": 27, "outcome": "passed", "keywords": ["test_non_literal_with_id[custom-obj]", "parametrize", "pytestmark", "custom-obj", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00016870396211743355, "outcome": "passed"}, "call": {"duration": 0.00014169199857860804, "outcome": "passed"}, "teardown": {"duration": 0.0001256490359082818, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_timedistance_v1[a0-b0-expected0]", "lineno": 40, "outcome": "passed", "keywords": ["test_timedistance_v1[a0-b0-expected0]", "parametrize", "pytestmark", "a0-b0-expected0", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00026894197799265385, "outcome": "passed"}, "call": {"duration": 0.00014270201791077852, "outcome": "passed"}, "teardown": {"duration": 0.00016119400970637798, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_timedistance_v1[a1-b1-expected1]", "lineno": 40, "outcome": "passed", "keywords": ["test_timedistance_v1[a1-b1-expected1]", "parametrize", "pytestmark", "a1-b1-expected1", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0002681460464373231, "outcome": "passed"}, "call": {"duration": 0.00013109506107866764, "outcome": "passed"}, "teardown": {"duration": 0.0001480280188843608, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::TestDynamic::test_sum_positive", "lineno": 70, "outcome": "error", "keywords": ["test_sum_positive", "TestDynamic", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0001716669648885727, "outcome": "failed", "longrepr": "file /workspace/tligui_y/slic/tests/test_param.py, line 71\n def test_sum_positive(self, x, y):\nE fixture 'x' not found\n> available fixtures: cache, capfd, capfdbinary, caplog, capsys, capsysbinary, complex_setup, cov, doctest_namespace, element, extra, extras, include_metadata_in_junit_xml, json_metadata, metadata, monkeypatch, no_cover, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory\n> use 'pytest --fixtures [testpath]' for help on them.\n\n/workspace/tligui_y/slic/tests/test_param.py:71"}, "teardown": {"duration": 0.0001639300025999546, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_dynamic[ten]", "lineno": 78, "outcome": "passed", "keywords": ["test_dynamic[ten]", "ten", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00019332708325237036, "outcome": "passed"}, "call": {"duration": 0.00013750593643635511, "outcome": "passed"}, "teardown": {"duration": 0.00012976897414773703, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_dynamic[twenty]", "lineno": 78, "outcome": "passed", "keywords": ["test_dynamic[twenty]", "twenty", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00018239801283925772, "outcome": "passed"}, "call": {"duration": 0.00013742002192884684, "outcome": "passed"}, "teardown": {"duration": 0.00013528205454349518, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_dynamic[thirty]", "lineno": 78, "outcome": "passed", "keywords": ["test_dynamic[thirty]", "thirty", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00017375207971781492, "outcome": "passed"}, "call": {"duration": 0.00012700899969786406, "outcome": "passed"}, "teardown": {"duration": 0.00012178800534456968, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f525]", "lineno": 87, "outcome": "passed", "keywords": ["test_element_type[\\U0001f525]", "\\U0001f525", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.000185595010407269, "outcome": "passed"}, "call": {"duration": 0.00013192207552492619, "outcome": "passed"}, "teardown": {"duration": 0.00012424704618752003, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f4a7]", "lineno": 87, "outcome": "passed", "keywords": ["test_element_type[\\U0001f4a7]", "\\U0001f4a7", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00017815292812883854, "outcome": "passed"}, "call": {"duration": 0.00012919306755065918, "outcome": "passed"}, "teardown": {"duration": 0.00012062094174325466, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f30d]", "lineno": 87, "outcome": "passed", "keywords": ["test_element_type[\\U0001f30d]", "\\U0001f30d", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00017611810471862555, "outcome": "passed"}, "call": {"duration": 0.00013334793038666248, "outcome": "passed"}, "teardown": {"duration": 0.00012266100384294987, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_combination[a-1]", "lineno": 90, "outcome": "passed", "keywords": ["test_combination[a-1]", "parametrize", "pytestmark", "a-1", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00021067692432552576, "outcome": "passed"}, "call": {"duration": 0.00012870400678366423, "outcome": "passed"}, "teardown": {"duration": 0.00013846298679709435, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_combination[a-2]", "lineno": 90, "outcome": "passed", "keywords": ["test_combination[a-2]", "parametrize", "pytestmark", "a-2", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00022841000463813543, "outcome": "passed"}, "call": {"duration": 0.00013159599620848894, "outcome": "passed"}, "teardown": {"duration": 0.0001384878996759653, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_combination[b-1]", "lineno": 90, "outcome": "passed", "keywords": ["test_combination[b-1]", "parametrize", "pytestmark", "b-1", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0002173910615965724, "outcome": "passed"}, "call": {"duration": 0.0001379289897158742, "outcome": "passed"}, "teardown": {"duration": 0.00013272708747535944, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_combination[b-2]", "lineno": 90, "outcome": "passed", "keywords": ["test_combination[b-2]", "parametrize", "pytestmark", "b-2", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0002061250852420926, "outcome": "passed"}, "call": {"duration": 0.00014073296915739775, "outcome": "passed"}, "teardown": {"duration": 0.00015582703053951263, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_indirect_fixture[1]", "lineno": 100, "outcome": "passed", "keywords": ["test_indirect_fixture[1]", "parametrize", "pytestmark", "1", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00018170604016631842, "outcome": "passed"}, "call": {"duration": 0.00014184904284775257, "outcome": "passed"}, "teardown": {"duration": 0.00026123097632080317, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_indirect_fixture[2]", "lineno": 100, "outcome": "passed", "keywords": ["test_indirect_fixture[2]", "parametrize", "pytestmark", "2", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0002087079919874668, "outcome": "passed"}, "call": {"duration": 0.00015469209756702185, "outcome": "passed"}, "teardown": {"duration": 0.0001297489507123828, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_addition", "lineno": 104, "outcome": "failed", "keywords": ["test_addition", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00013034406583756208, "outcome": "passed"}, "call": {"duration": 0.00016851199325174093, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_param.py", "lineno": 107, "message": "NameError: name 'addition' is not defined"}, "traceback": [{"path": "tests/test_param.py", "lineno": 107, "message": "NameError"}], "longrepr": "a = 5, b = 5, expected = 10\n\n def test_addition(a = 5, b = 5, expected = 10):\n # Has to pass\n> assert addition(a, b) == expected\nE NameError: name 'addition' is not defined\n\ntests/test_param.py:107: NameError"}, "teardown": {"duration": 0.0001569989835843444, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_uppercase_normal", "lineno": 9, "outcome": "passed", "keywords": ["test_uppercase_normal", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00014512601774185896, "outcome": "passed"}, "call": {"duration": 0.0001521629747003317, "outcome": "passed"}, "teardown": {"duration": 0.00011778890620917082, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_uppercase_type_error", "lineno": 13, "outcome": "failed", "keywords": ["test_uppercase_type_error", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011172494851052761, "outcome": "passed"}, "call": {"duration": 0.00015274202451109886, "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": 16, "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:16: \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.00014208396896719933, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_reverse_string", "lineno": 17, "outcome": "passed", "keywords": ["test_reverse_string", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012179696932435036, "outcome": "passed"}, "call": {"duration": 0.00015486497431993484, "outcome": "passed"}, "teardown": {"duration": 0.0001054280437529087, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_warning_emit", "lineno": 21, "outcome": "passed", "keywords": ["test_warning_emit", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001131650060415268, "outcome": "passed"}, "call": {"duration": 0.00016114593017846346, "outcome": "passed"}, "teardown": {"duration": 9.896804112941027e-05, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_error", "lineno": 25, "outcome": "failed", "keywords": ["test_unicode_decode_error", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011881999671459198, "outcome": "passed"}, "call": {"duration": 0.0001722599845379591, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 28, "message": "UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 28, "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:28: UnicodeDecodeError"}, "teardown": {"duration": 0.0001391660189256072, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_surrogateescape", "lineno": 29, "outcome": "failed", "keywords": ["test_unicode_decode_surrogateescape", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012017902918159962, "outcome": "passed"}, "call": {"duration": 0.000166269950568676, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 32, "message": "UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 32, "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:32: UnicodeDecodeError"}, "teardown": {"duration": 0.000136653077788651, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_import_warning", "lineno": 33, "outcome": "passed", "keywords": ["test_import_warning", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012189196422696114, "outcome": "passed"}, "call": {"duration": 0.000153709901496768, "outcome": "passed"}, "teardown": {"duration": 0.00010752503294497728, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_xfail_uppercase_digits", "lineno": 37, "outcome": "xfailed", "keywords": ["test_xfail_uppercase_digits", "xfail", "pytestmark", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00013186491560190916, "outcome": "passed"}, "call": {"duration": 0.0006662909872829914, "outcome": "skipped", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 41, "message": "AssertionError: assert 'ABC123' == 'ABC1234'\n \n - ABC1234\n ? -\n + ABC123"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 41, "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:41: AssertionError"}, "teardown": {"duration": 0.00013853597920387983, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_keyboard_interrupt_direct", "lineno": 49, "outcome": "passed", "keywords": ["test_keyboard_interrupt_direct", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00013420695904642344, "outcome": "passed"}}], "warnings": [{"message": "Test warning", "category": "UserWarning", "when": "runtest", "filename": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 24}]}
\ No newline at end of file
diff --git a/ci-reports/markdown/runtime_params.json b/ci-reports/markdown/runtime_params.json
index cf7b3ab2..d7b55d49 100644
--- a/ci-reports/markdown/runtime_params.json
+++ b/ci-reports/markdown/runtime_params.json
@@ -280,7 +280,7 @@
"callspec": {
"id": "custom-obj",
"marks": [],
- "params": "{'data': }"
+ "params": "{'data': }"
}
},
{