📁 ci-reports/markdown/pytest-report.json
├── created: 1753186831.8872082
├── duration: 0.802386999130249
├── exitcode: 2
├── root: /workspace/tligui_y/slic
├── environment
├── summary
│   ├── passed: 38
│   ├── failed: 33
│   ├── xfailed: 2
│   ├── skipped: 1
│   ├── error: 1
│   ├── total: 75
│   └── collected: 75
├── 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: temp-ci
│   │   ├── 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
│   │           mod = import_path(
│   │       .pixi/envs/default/lib/python3.8/site-packages/_pytest/pathlib.py:58
│   │       7: in import_path
│   │           importlib.import_module(module_name)
│   │       .pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in 
│   │       import_module
│   │           return _bootstrap._gcd_import(name, package, level)
│   │       <frozen importlib._bootstrap>:1014: in _gcd_import
│   │           ???
│   │       <frozen importlib._bootstrap>:991: in _find_and_load
│   │           ???
│   │       <frozen importlib._bootstrap>:975: in _find_and_load_unlocked
│   │           ???
│   │       <frozen importlib._bootstrap>:671: in _load_unlocked
│   │           ???
│   │       .pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rew
│   │       rite.py:175: in exec_module
│   │           source_stat, co = _rewrite_test(fn, self.config)
│   │       .pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rew
│   │       rite.py:355: in _rewrite_test
│   │           tree = ast.parse(source, filename=strfn)
│   │       .pixi/envs/default/lib/python3.8/ast.py:47: in parse
│   │           return compile(source, filename, mode, flags,
│   │       E     File "/workspace/tligui_y/slic/tests/test_broken_fct.py", line
│   │       8
│   │       E       def test_valid_2():
│   │       E       ^
│   │       E   SyntaxError: invalid syntax
│   ├── -
│   │   ├── nodeid: tests/test_collector_error.py
│   │   ├── outcome: failed
│   │   ├── result
│   │   └── longrepr: ImportError while importing test module 
│   │       '/workspace/tligui_y/slic/tests/test_collector_error.py'.
│   │       Hint: make sure your test modules/packages have valid Python names.
│   │       Traceback:
│   │       .pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in 
│   │       import_module
│   │           return _bootstrap._gcd_import(name, package, level)
│   │       tests/test_collector_error.py:1: in <module>
│   │           from no_existing_module.math_utils import *
│   │       E   ModuleNotFoundError: No module named 'no_existing_module'
│   ├── -
│   │   ├── nodeid: tests/test_io_utils.py
│   │   ├── outcome: passed
│   │   └── result
│   │       ├── -
│   │       │   ├── nodeid: tests/test_io_utils.py::test_write_file
│   │       │   ├── type: Function
│   │       │   └── lineno: 9
│   │       ├── -
│   │       │   ├── nodeid: tests/test_io_utils.py::test_read_file
│   │       │   ├── type: Function
│   │       │   └── lineno: 15
│   │       ├── -
│   │       │   ├── 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_in_readonly_mode
│   │       │   ├── type: Function
│   │       │   └── lineno: 58
│   │       └── -
│   │           ├── nodeid: tests/test_io_utils.py::test_file_not_found_error
│   │           ├── type: Function
│   │           └── lineno: 67
│   ├── -
│   │   ├── nodeid: tests/test_math_utils.py
│   │   ├── outcome: passed
│   │   └── result
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_broken
│   │       │   ├── type: Function
│   │       │   └── lineno: 13
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_call_missing_function
│   │       │   ├── type: Function
│   │       │   └── lineno: 17
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_addition_pass[2-2-4]
│   │       │   ├── type: Function
│   │       │   └── lineno: 22
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_addition_pass[1-5-6]
│   │       │   ├── type: Function
│   │       │   └── lineno: 22
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_addition_pass[3-4-7]
│   │       │   ├── type: Function
│   │       │   └── lineno: 22
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_addition_pass[3-5-8]
│   │       │   ├── type: Function
│   │       │   └── lineno: 22
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_addition_pass[3-6-9]
│   │       │   ├── type: Function
│   │       │   └── lineno: 22
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_addition_pass_id
│   │       │   ├── type: Function
│   │       │   └── lineno: 36
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_addition_pass_id
│   │       │   ├── type: Function
│   │       │   └── lineno: 36
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_addition_pass_id
│   │       │   ├── type: Function
│   │       │   └── lineno: 36
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_addition_fail
│   │       │   ├── type: Function
│   │       │   └── lineno: 48
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_division_zero
│   │       │   ├── type: Function
│   │       │   └── lineno: 52
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_multiply_xfail
│   │       │   ├── type: Function
│   │       │   └── lineno: 56
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_runtime_error
│   │       │   ├── type: Function
│   │       │   └── lineno: 61
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_memory_error
│   │       │   ├── type: Function
│   │       │   └── lineno: 65
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_timeout_error
│   │       │   ├── type: Function
│   │       │   └── lineno: 69
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_recursion_error
│   │       │   ├── type: Function
│   │       │   └── lineno: 73
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_floating_point_error
│   │       │   ├── type: Function
│   │       │   └── lineno: 79
│   │       ├── -
│   │       │   ├── nodeid: 
│   │       │   │   tests/test_math_utils.py::test_floating_point_overflow
│   │       │   ├── type: Function
│   │       │   └── lineno: 83
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_value_error
│   │       │   ├── type: Function
│   │       │   └── lineno: 87
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_wrong_argument_error
│   │       │   ├── type: Function
│   │       │   └── lineno: 91
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_unhandled_exception
│   │       │   ├── type: Function
│   │       │   └── lineno: 95
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_custom_error
│   │       │   ├── type: Function
│   │       │   └── lineno: 99
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_stop_iteration_direct
│   │       │   ├── type: Function
│   │       │   └── lineno: 103
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_generator_exit_direct
│   │       │   ├── type: Function
│   │       │   └── lineno: 107
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_malformed_code
│   │       │   ├── type: Function
│   │       │   └── lineno: 111
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_sys_exit
│   │       │   ├── type: Function
│   │       │   └── lineno: 115
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_broken_function
│   │       │   ├── type: Function
│   │       │   └── lineno: 119
│   │       ├── -
│   │       │   ├── nodeid: tests/test_math_utils.py::test_import_error
│   │       │   ├── type: Function
│   │       │   └── lineno: 125
│   │       └── -
│   │           ├── nodeid: 
│   │           │   tests/test_math_utils.py::test_module_not_found_error
│   │           ├── type: Function
│   │           └── lineno: 129
│   ├── -
│   │   ├── nodeid: tests/test_param.py
│   │   ├── outcome: passed
│   │   └── result
│   │       ├── -
│   │       │   ├── nodeid: tests/test_param.py::test_basic_ids
│   │       │   ├── type: Function
│   │       │   └── lineno: 3
│   │       ├── -
│   │       │   ├── nodeid: tests/test_param.py::test_basic_ids
│   │       │   ├── type: Function
│   │       │   └── lineno: 3
│   │       ├── -
│   │       │   ├── nodeid: tests/test_param.py::test_with_reason_and_marks
│   │       │   ├── type: Function
│   │       │   └── lineno: 11
│   │       ├── -
│   │       │   ├── nodeid: tests/test_param.py::test_with_reason_and_marks
│   │       │   ├── 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
│   │       │   ├── type: Function
│   │       │   └── lineno: 27
│   │       ├── -
│   │       │   ├── nodeid: tests/test_param.py::test_timedistance_v1
│   │       │   ├── type: Function
│   │       │   └── lineno: 43
│   │       ├── -
│   │       │   ├── nodeid: tests/test_param.py::test_timedistance_v1
│   │       │   ├── type: Function
│   │       │   └── lineno: 43
│   │       ├── -
│   │       │   ├── nodeid: tests/test_param.py::test_sum_positive
│   │       │   ├── type: Function
│   │       │   └── lineno: 55
│   │       ├── -
│   │       │   ├── nodeid: tests/test_param.py::test_sum_positive
│   │       │   ├── type: Function
│   │       │   └── lineno: 55
│   │       ├── -
│   │       │   ├── nodeid: tests/test_param.py::test_sum_positive
│   │       │   ├── type: Function
│   │       │   └── lineno: 55
│   │       ├── -
│   │       │   ├── nodeid: tests/test_param.py::test_dynamic
│   │       │   ├── type: Function
│   │       │   └── lineno: 65
│   │       ├── -
│   │       │   ├── nodeid: tests/test_param.py::test_dynamic
│   │       │   ├── type: Function
│   │       │   └── lineno: 65
│   │       ├── -
│   │       │   ├── nodeid: tests/test_param.py::test_dynamic
│   │       │   ├── type: Function
│   │       │   └── lineno: 65
│   │       ├── -
│   │       │   ├── nodeid: tests/test_param.py::test_element_type[\U0001f525]
│   │       │   ├── type: Function
│   │       │   └── lineno: 74
│   │       ├── -
│   │       │   ├── nodeid: tests/test_param.py::test_element_type[\U0001f4a7]
│   │       │   ├── type: Function
│   │       │   └── lineno: 74
│   │       ├── -
│   │       │   ├── nodeid: tests/test_param.py::test_element_type[\U0001f30d]
│   │       │   ├── type: Function
│   │       │   └── lineno: 74
│   │       ├── -
│   │       │   ├── nodeid: tests/test_param.py::test_combination
│   │       │   ├── type: Function
│   │       │   └── lineno: 78
│   │       ├── -
│   │       │   ├── nodeid: tests/test_param.py::test_combination
│   │       │   ├── type: Function
│   │       │   └── lineno: 78
│   │       ├── -
│   │       │   ├── nodeid: tests/test_param.py::test_combination
│   │       │   ├── type: Function
│   │       │   └── lineno: 78
│   │       ├── -
│   │       │   ├── nodeid: tests/test_param.py::test_combination
│   │       │   ├── type: Function
│   │       │   └── lineno: 78
│   │       ├── -
│   │       │   ├── nodeid: tests/test_param.py::test_indirect_fixture[1]
│   │       │   ├── type: Function
│   │       │   └── lineno: 89
│   │       ├── -
│   │       │   ├── nodeid: tests/test_param.py::test_indirect_fixture[2]
│   │       │   ├── type: Function
│   │       │   └── lineno: 89
│   │       ├── -
│   │       │   ├── nodeid: tests/test_param.py::test_addition
│   │       │   ├── type: Function
│   │       │   └── lineno: 94
│   │       └── -
│   │           ├── nodeid: tests/test_param.py::test_basic_error
│   │           ├── type: Function
│   │           └── lineno: 99
│   ├── -
│   │   ├── 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_surrogateesc
│   │       │   │   ape
│   │       │   ├── type: Function
│   │       │   └── lineno: 29
│   │       ├── -
│   │       │   ├── nodeid: tests/test_string_utils.py::test_syntax_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: temp-ci
│           │   └── type: Dir
│           └── -
│               ├── nodeid: tests
│               └── type: Dir
├── tests
│   ├── -
│   │   ├── nodeid: tests/test_io_utils.py::test_write_file
│   │   ├── lineno: 9
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_write_file
│   │   │   ├── test_io_utils.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.0037569969426840544
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0005096939858049154
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.0002742509823292494
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_io_utils.py::test_read_file
│   │   ├── lineno: 15
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_read_file
│   │   │   ├── test_io_utils.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.0005325169768184423
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00032279500737786293
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00017904490232467651
│   │       └── 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.0001224700827151537
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00018003280274569988
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/functions/io_utils.py
│   │   │   │   ├── lineno: 10
│   │   │   │   └── message: OSError: Forced IO Error for testing
│   │   │   ├── traceback
│   │   │   │   ├── -
│   │   │   │   │   ├── path: tests/test_io_utils.py
│   │   │   │   │   ├── lineno: 25
│   │   │   │   │   └── message: 
│   │   │   │   └── -
│   │   │   │       ├── path: functions/io_utils.py
│   │   │   │       ├── lineno: 10
│   │   │   │       └── message: OSError
│   │   │   └── longrepr: def test_cause_io_error():
│   │   │               # Raises manual IOError to simulate IO failure
│   │   │       >       cause_io_error()
│   │   │       
│   │   │       tests/test_io_utils.py:25: 
│   │   │       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
│   │   │       _ _ _ _ _ _ _ _ 
│   │   │       
│   │   │           def cause_io_error():
│   │   │       >       raise IOError("Forced IO Error for testing")
│   │   │       E       OSError: Forced IO Error for testing
│   │   │       
│   │   │       functions/io_utils.py:10: OSError
│   │   └── teardown
│   │       ├── duration: 0.00018008891493082047
│   │       └── 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.00013200892135500908
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00020172097720205784
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/functions/io_utils.py
│   │   │   │   ├── lineno: 2
│   │   │   │   └── message: FileNotFoundError: [Errno 2] No such file or 
│   │   │   │       directory: 'nonexistent.file'
│   │   │   ├── traceback
│   │   │   │   ├── -
│   │   │   │   │   ├── path: tests/test_io_utils.py
│   │   │   │   │   ├── lineno: 29
│   │   │   │   │   └── message: 
│   │   │   │   └── -
│   │   │   │       ├── path: functions/io_utils.py
│   │   │   │       ├── lineno: 2
│   │   │   │       └── message: FileNotFoundError
│   │   │   └── longrepr: def test_file_not_found():
│   │   │               # Reading non-existing file raises FileNotFoundError
│   │   │       >       read_file("nonexistent.file")
│   │   │       
│   │   │       tests/test_io_utils.py:29: 
│   │   │       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
│   │   │       _ _ _ _ _ _ _ _ 
│   │   │       
│   │   │       path = 'nonexistent.file'
│   │   │       
│   │   │           def read_file(path):
│   │   │       >       with open(path, "r", encoding="utf-8") as f:
│   │   │       E       FileNotFoundError: [Errno 2] No such file or directory: 
│   │   │       'nonexistent.file'
│   │   │       
│   │   │       functions/io_utils.py:2: FileNotFoundError
│   │   └── teardown
│   │       ├── duration: 0.0001676240935921669
│   │       └── 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.0002664120402187109
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00021990598179399967
│   │   │   ├── 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 0x7f5e1a9673a0>
│   │   │       
│   │   │           def test_permission_error(monkeypatch):
│   │   │               # Patch open to raise PermissionError simulating access 
│   │   │       denial
│   │   │               def raise_perm_error(*args, **kwargs):
│   │   │                   raise PermissionError("Permission denied")
│   │   │               monkeypatch.setattr("builtins.open", raise_perm_error)
│   │   │       >       read_file("anyfile.txt")
│   │   │       
│   │   │       tests/test_io_utils.py:36: 
│   │   │       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
│   │   │       _ _ _ _ _ _ _ _ 
│   │   │       functions/io_utils.py:2: in read_file
│   │   │           with open(path, "r", encoding="utf-8") as f:
│   │   │       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
│   │   │       _ _ _ _ _ _ _ _ 
│   │   │       
│   │   │       args = ('anyfile.txt', 'r'), kwargs = {'encoding': 'utf-8'}
│   │   │       
│   │   │           def raise_perm_error(*args, **kwargs):
│   │   │       >       raise PermissionError("Permission denied")
│   │   │       E       PermissionError: Permission denied
│   │   │       
│   │   │       tests/test_io_utils.py:34: PermissionError
│   │   └── teardown
│   │       ├── duration: 0.00019081495702266693
│   │       └── 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.0002312080468982458
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0034698080271482468
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: 
│   │   │   │   │   /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/un
│   │   │   │   │   ittest/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 0x7f5e1a980580>
│   │   │       
│   │   │           def test_mock_open_error(monkeypatch):
│   │   │               # Mock open() to raise IOError simulating read error
│   │   │               mocked_open = mock.mock_open()
│   │   │               mocked_open.side_effect = IOError("Mocked IOError")
│   │   │               monkeypatch.setattr("builtins.open", mocked_open)
│   │   │       >       with open("file.txt", "r") as f:
│   │   │       
│   │   │       tests/test_io_utils.py:43: 
│   │   │       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
│   │   │       _ _ _ _ _ _ _ _ 
│   │   │       .pixi/envs/default/lib/python3.8/unittest/mock.py:1081: in 
│   │   │       __call__
│   │   │           return self._mock_call(*args, **kwargs)
│   │   │       .pixi/envs/default/lib/python3.8/unittest/mock.py:1085: in 
│   │   │       _mock_call
│   │   │           return self._execute_mock_call(*args, **kwargs)
│   │   │       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
│   │   │       _ _ _ _ _ _ _ _ 
│   │   │       
│   │   │       self = <MagicMock name='open' spec='builtin_function_or_method' 
│   │   │       id='140042149823968'>
│   │   │       args = ('file.txt', 'r'), kwargs = {}, effect = OSError('Mocked 
│   │   │       IOError')
│   │   │       
│   │   │           def _execute_mock_call(self, /, *args, **kwargs):
│   │   │               # separate from _increment_mock_call so that awaited 
│   │   │       functions are
│   │   │               # executed separately from their call, also AsyncMock 
│   │   │       overrides this method
│   │   │           
│   │   │               effect = self.side_effect
│   │   │               if effect is not None:
│   │   │                   if _is_exception(effect):
│   │   │       >               raise effect
│   │   │       E               OSError: Mocked IOError
│   │   │       
│   │   │       .pixi/envs/default/lib/python3.8/unittest/mock.py:1140: OSError
│   │   └── teardown
│   │       ├── duration: 0.00032809702679514885
│   │       └── 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.00015931506641209126
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00020626303739845753
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_io_utils.py
│   │   │   │   ├── lineno: 50
│   │   │   │   └── message: ValueError: I/O operation on closed file
│   │   │   ├── traceback
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_io_utils.py
│   │   │   │       ├── lineno: 50
│   │   │   │       └── message: ValueError
│   │   │   └── longrepr: def test_file_handle_closed_error():
│   │   │               # Accessing closed file raises ValueError
│   │   │               f = io.StringIO("content")
│   │   │               f.close()
│   │   │       >       f.read()
│   │   │       E       ValueError: I/O operation on closed file
│   │   │       
│   │   │       tests/test_io_utils.py:50: ValueError
│   │   └── teardown
│   │       ├── duration: 0.00019807717762887478
│   │       └── 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.0002792652230709791
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00019977707415819168
│   │   │   ├── 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 0x7f5e1b407a90>
│   │   │       
│   │   │           def test_os_error(monkeypatch):
│   │   │               # Patch os.remove to raise OSError simulating filesystem
│   │   │       error
│   │   │               def raise_os_error(path):
│   │   │                   raise OSError("Simulated OSError")
│   │   │               monkeypatch.setattr("os.remove", raise_os_error)
│   │   │       >       os.remove("file.txt")
│   │   │       
│   │   │       tests/test_io_utils.py:57: 
│   │   │       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
│   │   │       _ _ _ _ _ _ _ _ 
│   │   │       
│   │   │       path = 'file.txt'
│   │   │       
│   │   │           def raise_os_error(path):
│   │   │       >       raise OSError("Simulated OSError")
│   │   │       E       OSError: Simulated OSError
│   │   │       
│   │   │       tests/test_io_utils.py:55: OSError
│   │   └── teardown
│   │       ├── duration: 0.0002026241272687912
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_io_utils.py::test_write_file_in_readonly_mode
│   │   ├── lineno: 58
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_write_file_in_readonly_mode
│   │   │   ├── test_io_utils.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.0006904399488121271
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0010858988389372826
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00015509501099586487
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_io_utils.py::test_file_not_found_error
│   │   ├── lineno: 67
│   │   ├── outcome: failed
│   │   ├── keywords
│   │   │   ├── test_file_not_found_error
│   │   │   ├── test_io_utils.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.00011932989582419395
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0001780809834599495
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_io_utils.py
│   │   │   │   ├── lineno: 70
│   │   │   │   └── message: FileNotFoundError: [Errno 2] No such file or 
│   │   │   │       directory: 'no_such_file.txt'
│   │   │   ├── traceback
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_io_utils.py
│   │   │   │       ├── lineno: 70
│   │   │   │       └── message: FileNotFoundError
│   │   │   └── longrepr: def test_file_not_found_error():
│   │   │               # Raises FileNotFoundError when opening a non-existent 
│   │   │       file
│   │   │       >       open("no_such_file.txt", "r")
│   │   │       E       FileNotFoundError: [Errno 2] No such file or directory: 
│   │   │       'no_such_file.txt'
│   │   │       
│   │   │       tests/test_io_utils.py:70: FileNotFoundError
│   │   └── teardown
│   │       ├── duration: 0.00015754904597997665
│   │       └── 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.000134600093588233
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00016288785263895988
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│   │   │   │   ├── lineno: 16
│   │   │   │   └── message: NameError: name 'want_the_test_to_fail' is not 
│   │   │   │       defined
│   │   │   ├── traceback
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_math_utils.py
│   │   │   │       ├── lineno: 16
│   │   │   │       └── message: NameError
│   │   │   └── longrepr: def test_broken():
│   │   │               # simulating a broken or faulty test implementation that
│   │   │       will cause the test to error
│   │   │       >       want_the_test_to_fail
│   │   │       E       NameError: name 'want_the_test_to_fail' is not defined
│   │   │       
│   │   │       tests/test_math_utils.py:16: NameError
│   │   └── teardown
│   │       ├── duration: 0.00014806212857365608
│   │       └── 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.00012706615962088108
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0001639239490032196
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│   │   │   │   ├── lineno: 20
│   │   │   │   └── message: AttributeError: module 'functions.math_utils' has 
│   │   │   │       no attribute 'non_existent_function'
│   │   │   ├── traceback
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_math_utils.py
│   │   │   │       ├── lineno: 20
│   │   │   │       └── message: AttributeError
│   │   │   └── longrepr: def test_call_missing_function():
│   │   │               # Accessing a missing function attribute raises 
│   │   │       AttributeError
│   │   │       >       getattr(math_utils, "non_existent_function")()
│   │   │       E       AttributeError: module 'functions.math_utils' has no 
│   │   │       attribute 'non_existent_function'
│   │   │       
│   │   │       tests/test_math_utils.py:20: AttributeError
│   │   └── teardown
│   │       ├── duration: 0.00015070894733071327
│   │       └── 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.00034327595494687557
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.000157476169988513
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00016790302470326424
│   │       └── 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.00029004598036408424
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00014446699060499668
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00016353814862668514
│   │       └── 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.00025340798310935497
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00013406388461589813
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00015211384743452072
│   │       └── 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.0002598010469228029
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00014840299263596535
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00014547002501785755
│   │       └── 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.00025939405895769596
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00013781804591417313
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00014985213056206703
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_math_utils.py::test_addition_pass_id
│   │   ├── lineno: 36
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_addition_pass_id
│   │   │   ├── parametrize
│   │   │   ├── pytestmark
│   │   │   ├── a=2,b=2,expected=4
│   │   │   ├── test_math_utils.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.0002632918767631054
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00013277307152748108
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00015255692414939404
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_math_utils.py::test_addition_pass_id
│   │   ├── lineno: 36
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_addition_pass_id
│   │   │   ├── parametrize
│   │   │   ├── pytestmark
│   │   │   ├── a=1,b=5,expected=6
│   │   │   ├── test_math_utils.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.00027729407884180546
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0001367179211229086
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.0001456509344279766
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_math_utils.py::test_addition_pass_id
│   │   ├── lineno: 36
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_addition_pass_id
│   │   │   ├── parametrize
│   │   │   ├── pytestmark
│   │   │   ├── a=3,b=4,expected=7
│   │   │   ├── test_math_utils.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.0002615661360323429
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0001356049906462431
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00014976202510297298
│   │       └── 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.00010613794438540936
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0004811838734894991
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│   │   │   │   ├── lineno: 51
│   │   │   │   └── message: assert 4 == 5
│   │   │   │        +  where 4 = addition(2, 2)
│   │   │   ├── traceback
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_math_utils.py
│   │   │   │       ├── lineno: 51
│   │   │   │       └── message: AssertionError
│   │   │   └── longrepr: def test_addition_fail():
│   │   │               # Assertion failure: expected incorrect result
│   │   │       >       assert addition(2, 2) == 5
│   │   │       E       assert 4 == 5
│   │   │       E        +  where 4 = addition(2, 2)
│   │   │       
│   │   │       tests/test_math_utils.py:51: AssertionError
│   │   └── teardown
│   │       ├── duration: 0.00015685893595218658
│   │       └── 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.00012019299902021885
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00016984599642455578
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/functions/math_utils.py
│   │   │   │   ├── lineno: 5
│   │   │   │   └── message: ZeroDivisionError: division by zero
│   │   │   ├── traceback
│   │   │   │   ├── -
│   │   │   │   │   ├── path: tests/test_math_utils.py
│   │   │   │   │   ├── lineno: 55
│   │   │   │   │   └── message: 
│   │   │   │   └── -
│   │   │   │       ├── path: functions/math_utils.py
│   │   │   │       ├── lineno: 5
│   │   │   │       └── message: ZeroDivisionError
│   │   │   └── longrepr: def test_division_zero():
│   │   │               # Will raise ZeroDivisionError if not handled in 
│   │   │       division
│   │   │       >       division(1, 0)
│   │   │       
│   │   │       tests/test_math_utils.py:55: 
│   │   │       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
│   │   │       _ _ _ _ _ _ _ _ 
│   │   │       
│   │   │       a = 1, b = 0
│   │   │       
│   │   │           def division(a, b):
│   │   │       >       return a / b
│   │   │       E       ZeroDivisionError: division by zero
│   │   │       
│   │   │       functions/math_utils.py:5: ZeroDivisionError
│   │   └── teardown
│   │       ├── duration: 0.00013853097334504128
│   │       └── 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.00013948394916951656
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00028550089336931705
│   │   │   ├── outcome: skipped
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│   │   │   │   ├── lineno: 60
│   │   │   │   └── message: assert 4 == 5
│   │   │   │        +  where 4 = multiply(2, 2)
│   │   │   ├── traceback
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_math_utils.py
│   │   │   │       ├── lineno: 60
│   │   │   │       └── message: AssertionError
│   │   │   └── longrepr: @pytest.mark.xfail(reason="Expected failure")
│   │   │           def test_multiply_xfail():
│   │   │               # Expected fail test (xfail): incorrect expected 
│   │   │       multiply result
│   │   │       >       assert multiply(2, 2) == 5
│   │   │       E       assert 4 == 5
│   │   │       E        +  where 4 = multiply(2, 2)
│   │   │       
│   │   │       tests/test_math_utils.py:60: AssertionError
│   │   └── teardown
│   │       ├── duration: 0.0001407228410243988
│   │       └── 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.00011987308971583843
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00017060386016964912
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│   │   │   │   ├── lineno: 64
│   │   │   │   └── message: RuntimeError: Forced runtime error
│   │   │   ├── traceback
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_math_utils.py
│   │   │   │       ├── lineno: 64
│   │   │   │       └── message: RuntimeError
│   │   │   └── longrepr: def test_runtime_error():
│   │   │               # Test raises an uncaught RuntimeError
│   │   │       >       raise RuntimeError("Forced runtime error")
│   │   │       E       RuntimeError: Forced runtime error
│   │   │       
│   │   │       tests/test_math_utils.py:64: RuntimeError
│   │   └── teardown
│   │       ├── duration: 0.00013809720985591412
│   │       └── 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.00012285402044653893
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0001594829373061657
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│   │   │   │   ├── lineno: 68
│   │   │   │   └── message: MemoryError: Simulated memory error
│   │   │   ├── traceback
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_math_utils.py
│   │   │   │       ├── lineno: 68
│   │   │   │       └── message: MemoryError
│   │   │   └── longrepr: def test_memory_error():
│   │   │               # Manually raise MemoryError to simulate out-of-memory 
│   │   │       condition
│   │   │       >       raise MemoryError("Simulated memory error")
│   │   │       E       MemoryError: Simulated memory error
│   │   │       
│   │   │       tests/test_math_utils.py:68: MemoryError
│   │   └── teardown
│   │       ├── duration: 0.0001374280545860529
│   │       └── 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.0001318019349128008
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0001761100720614195
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│   │   │   │   ├── lineno: 72
│   │   │   │   └── message: TimeoutError: Simulated timeout error
│   │   │   ├── traceback
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_math_utils.py
│   │   │   │       ├── lineno: 72
│   │   │   │       └── message: TimeoutError
│   │   │   └── longrepr: def test_timeout_error():
│   │   │               # Manually raise TimeoutError simulating timeout 
│   │   │       conditions
│   │   │       >       raise TimeoutError("Simulated timeout error")
│   │   │       E       TimeoutError: Simulated timeout error
│   │   │       
│   │   │       tests/test_math_utils.py:72: TimeoutError
│   │   └── teardown
│   │       ├── duration: 0.00013594701886177063
│   │       └── 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.0001238610129803419
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0008530439808964729
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│   │   │   │   ├── lineno: 77
│   │   │   │   └── message: RecursionError: maximum recursion depth exceeded
│   │   │   ├── traceback
│   │   │   │   ├── -
│   │   │   │   │   ├── path: tests/test_math_utils.py
│   │   │   │   │   ├── lineno: 78
│   │   │   │   │   └── message: 
│   │   │   │   ├── -
│   │   │   │   │   ├── path: tests/test_math_utils.py
│   │   │   │   │   ├── lineno: 77
│   │   │   │   │   └── message: in recursive
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_math_utils.py
│   │   │   │       ├── lineno: 77
│   │   │   │       └── message: in recursive
│   │   │   └── longrepr: def test_recursion_error():
│   │   │               # Infinite recursion triggers RecursionError
│   │   │               def recursive():
│   │   │                   return recursive()
│   │   │       >       recursive()
│   │   │       
│   │   │       tests/test_math_utils.py:78: 
│   │   │       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
│   │   │       _ _ _ _ _ _ _ _ 
│   │   │       tests/test_math_utils.py:77: in recursive
│   │   │           return recursive()
│   │   │       tests/test_math_utils.py:77: in recursive
│   │   │           return recursive()
│   │   │       E   RecursionError: maximum recursion depth exceeded
│   │   │       !!! Recursion detected (same locals & position)
│   │   └── teardown
│   │       ├── duration: 0.00021627009846270084
│   │       └── 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.00014436105266213417
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00018967199139297009
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│   │   │   │   ├── lineno: 82
│   │   │   │   └── message: FloatingPointError: Simulated floating point error
│   │   │   ├── traceback
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_math_utils.py
│   │   │   │       ├── lineno: 82
│   │   │   │       └── message: FloatingPointError
│   │   │   └── longrepr: def test_floating_point_error():
│   │   │               # Manually raise FloatingPointError
│   │   │       >       raise FloatingPointError("Simulated floating point 
│   │   │       error")
│   │   │       E       FloatingPointError: Simulated floating point error
│   │   │       
│   │   │       tests/test_math_utils.py:82: FloatingPointError
│   │   └── teardown
│   │       ├── duration: 0.0001592840999364853
│   │       └── 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.00013187387958168983
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00022005080245435238
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│   │   │   │   ├── lineno: 86
│   │   │   │   └── message: OverflowError: math range error
│   │   │   ├── traceback
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_math_utils.py
│   │   │   │       ├── lineno: 86
│   │   │   │       └── message: OverflowError
│   │   │   └── longrepr: def test_floating_point_overflow():
│   │   │               # Exponential overflow triggers OverflowError
│   │   │       >       math.exp(1000)
│   │   │       E       OverflowError: math range error
│   │   │       
│   │   │       tests/test_math_utils.py:86: OverflowError
│   │   └── teardown
│   │       ├── duration: 0.00016462919302284718
│   │       └── 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.00012758304364979267
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0001733759418129921
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│   │   │   │   ├── lineno: 90
│   │   │   │   └── message: ValueError: invalid literal for int() with base 10:
│   │   │   │       'invalid'
│   │   │   ├── traceback
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_math_utils.py
│   │   │   │       ├── lineno: 90
│   │   │   │       └── message: ValueError
│   │   │   └── longrepr: def test_value_error():
│   │   │               # ValueError on invalid integer conversion
│   │   │       >       int("invalid")
│   │   │       E       ValueError: invalid literal for int() with base 10: 
│   │   │       'invalid'
│   │   │       
│   │   │       tests/test_math_utils.py:90: ValueError
│   │   └── teardown
│   │       ├── duration: 0.00014618388377130032
│   │       └── 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.0001358729787170887
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0001803168561309576
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│   │   │   │   ├── lineno: 94
│   │   │   │   └── message: TypeError: 'int' object is not iterable
│   │   │   ├── traceback
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_math_utils.py
│   │   │   │       ├── lineno: 94
│   │   │   │       └── message: TypeError
│   │   │   └── longrepr: def test_wrong_argument_error():
│   │   │               # TypeError when passing wrong argument type to sum
│   │   │       >       sum(5)
│   │   │       E       TypeError: 'int' object is not iterable
│   │   │       
│   │   │       tests/test_math_utils.py:94: TypeError
│   │   └── teardown
│   │       ├── duration: 0.0001425009686499834
│   │       └── 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.00012588407844305038
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00017194985412061214
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│   │   │   │   ├── lineno: 98
│   │   │   │   └── message: Exception: Generic unhandled exception
│   │   │   ├── traceback
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_math_utils.py
│   │   │   │       ├── lineno: 98
│   │   │   │       └── message: Exception
│   │   │   └── longrepr: def test_unhandled_exception():
│   │   │               # Raises generic unhandled Exception
│   │   │       >       raise Exception("Generic unhandled exception")
│   │   │       E       Exception: Generic unhandled exception
│   │   │       
│   │   │       tests/test_math_utils.py:98: Exception
│   │   └── teardown
│   │       ├── duration: 0.0001400308683514595
│   │       └── 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.00012137508019804955
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00016485294327139854
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│   │   │   │   ├── lineno: 102
│   │   │   │   └── message: test_math_utils.CustomError: Custom error 
│   │   │   │       simulation
│   │   │   ├── traceback
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_math_utils.py
│   │   │   │       ├── lineno: 102
│   │   │   │       └── message: CustomError
│   │   │   └── longrepr: def test_custom_error():
│   │   │               # Raises user-defined CustomError exception
│   │   │       >       raise CustomError("Custom error simulation")
│   │   │       E       test_math_utils.CustomError: Custom error simulation
│   │   │       
│   │   │       tests/test_math_utils.py:102: CustomError
│   │   └── teardown
│   │       ├── duration: 0.0001499219797551632
│   │       └── 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.00013729603961110115
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00016323896124958992
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: 
│   │   │   │   │   /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/si
│   │   │   │   │   te-packages/_pytest/capture.py
│   │   │   │   ├── lineno: 880
│   │   │   │   └── message: RuntimeError: generator raised StopIteration
│   │   │   ├── traceback
│   │   │   │   ├── -
│   │   │   │   │   ├── path: 
│   │   │   │   │   │   .pixi/envs/default/lib/python3.8/site-packages/_pytest/r
│   │   │   │   │   │   unner.py
│   │   │   │   │   ├── lineno: 341
│   │   │   │   │   └── message: 
│   │   │   │   ├── -
│   │   │   │   │   ├── path: 
│   │   │   │   │   │   .pixi/envs/default/lib/python3.8/site-packages/_pytest/r
│   │   │   │   │   │   unner.py
│   │   │   │   │   ├── lineno: 242
│   │   │   │   │   └── message: in <lambda>
│   │   │   │   ├── -
│   │   │   │   │   ├── path: 
│   │   │   │   │   │   .pixi/envs/default/lib/python3.8/site-packages/pluggy/_h
│   │   │   │   │   │   ooks.py
│   │   │   │   │   ├── lineno: 513
│   │   │   │   │   └── message: in __call__
│   │   │   │   ├── -
│   │   │   │   │   ├── path: 
│   │   │   │   │   │   .pixi/envs/default/lib/python3.8/site-packages/pluggy/_m
│   │   │   │   │   │   anager.py
│   │   │   │   │   ├── lineno: 120
│   │   │   │   │   └── message: in _hookexec
│   │   │   │   ├── -
│   │   │   │   │   ├── path: 
│   │   │   │   │   │   .pixi/envs/default/lib/python3.8/site-packages/_pytest/t
│   │   │   │   │   │   hreadexception.py
│   │   │   │   │   ├── lineno: 92
│   │   │   │   │   └── message: in pytest_runtest_call
│   │   │   │   ├── -
│   │   │   │   │   ├── path: 
│   │   │   │   │   │   .pixi/envs/default/lib/python3.8/site-packages/_pytest/t
│   │   │   │   │   │   hreadexception.py
│   │   │   │   │   ├── lineno: 68
│   │   │   │   │   └── message: in thread_exception_runtest_hook
│   │   │   │   ├── -
│   │   │   │   │   ├── path: 
│   │   │   │   │   │   .pixi/envs/default/lib/python3.8/site-packages/_pytest/u
│   │   │   │   │   │   nraisableexception.py
│   │   │   │   │   ├── lineno: 95
│   │   │   │   │   └── message: in pytest_runtest_call
│   │   │   │   ├── -
│   │   │   │   │   ├── path: 
│   │   │   │   │   │   .pixi/envs/default/lib/python3.8/site-packages/_pytest/u
│   │   │   │   │   │   nraisableexception.py
│   │   │   │   │   ├── lineno: 70
│   │   │   │   │   └── message: in unraisable_exception_runtest_hook
│   │   │   │   ├── -
│   │   │   │   │   ├── path: 
│   │   │   │   │   │   .pixi/envs/default/lib/python3.8/site-packages/_pytest/l
│   │   │   │   │   │   ogging.py
│   │   │   │   │   ├── lineno: 846
│   │   │   │   │   └── message: in pytest_runtest_call
│   │   │   │   ├── -
│   │   │   │   │   ├── path: 
│   │   │   │   │   │   .pixi/envs/default/lib/python3.8/site-packages/_pytest/l
│   │   │   │   │   │   ogging.py
│   │   │   │   │   ├── lineno: 829
│   │   │   │   │   └── message: in _runtest_for
│   │   │   │   └── -
│   │   │   │       ├── path: 
│   │   │   │       │   .pixi/envs/default/lib/python3.8/site-packages/_pytest/c
│   │   │   │       │   apture.py
│   │   │   │       ├── lineno: 880
│   │   │   │       └── message: RuntimeError
│   │   │   └── longrepr: def test_stop_iteration_direct():
│   │   │               # Directly raise StopIteration exception
│   │   │       >       raise StopIteration()
│   │   │       E       StopIteration
│   │   │       
│   │   │       tests/test_math_utils.py:106: StopIteration
│   │   │       
│   │   │       The above exception was the direct cause of the following 
│   │   │       exception:
│   │   │       
│   │   │       cls = <class '_pytest.runner.CallInfo'>
│   │   │       func = <function call_and_report.<locals>.<lambda> at 
│   │   │       0x7f5e1a9569d0>
│   │   │       when = 'call'
│   │   │       reraise = (<class '_pytest.outcomes.Exit'>, <class 
│   │   │       'KeyboardInterrupt'>)
│   │   │       
│   │   │           @classmethod
│   │   │           def from_call(
│   │   │               cls,
│   │   │               func: Callable[[], TResult],
│   │   │               when: Literal["collect", "setup", "call", "teardown"],
│   │   │               reraise: type[BaseException] | 
│   │   │       tuple[type[BaseException], ...] | None = None,
│   │   │           ) -> CallInfo[TResult]:
│   │   │               """Call func, wrapping the result in a CallInfo.
│   │   │           
│   │   │               :param func:
│   │   │                   The function to call. Called without arguments.
│   │   │               :type func: Callable[[], _pytest.runner.TResult]
│   │   │               :param when:
│   │   │                   The phase in which the function is called.
│   │   │               :param reraise:
│   │   │                   Exception or exceptions that shall propagate if 
│   │   │       raised by the
│   │   │                   function, instead of being wrapped in the CallInfo.
│   │   │               """
│   │   │               excinfo = None
│   │   │               start = timing.time()
│   │   │               precise_start = timing.perf_counter()
│   │   │               try:
│   │   │       >           result: TResult | None = func()
│   │   │       
│   │   │       .pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py
│   │   │       :341: 
│   │   │       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
│   │   │       _ _ _ _ _ _ _ _ 
│   │   │       .pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py
│   │   │       :242: in <lambda>
│   │   │           lambda: runtest_hook(item=item, **kwds), when=when, 
│   │   │       reraise=reraise
│   │   │       .pixi/envs/default/lib/python3.8/site-packages/pluggy/_hooks.py:
│   │   │       513: in __call__
│   │   │           return self._hookexec(self.name, self._hookimpls.copy(), 
│   │   │       kwargs, firstresult)
│   │   │       .pixi/envs/default/lib/python3.8/site-packages/pluggy/_manager.p
│   │   │       y:120: in _hookexec
│   │   │           return self._inner_hookexec(hook_name, methods, kwargs, 
│   │   │       firstresult)
│   │   │       .pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexc
│   │   │       eption.py:92: in pytest_runtest_call
│   │   │           yield from thread_exception_runtest_hook()
│   │   │       .pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexc
│   │   │       eption.py:68: in thread_exception_runtest_hook
│   │   │           yield
│   │   │       .pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisabl
│   │   │       eexception.py:95: in pytest_runtest_call
│   │   │           yield from unraisable_exception_runtest_hook()
│   │   │       .pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisabl
│   │   │       eexception.py:70: in unraisable_exception_runtest_hook
│   │   │           yield
│   │   │       .pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.p
│   │   │       y:846: in pytest_runtest_call
│   │   │           yield from self._runtest_for(item, "call")
│   │   │       .pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.p
│   │   │       y:829: in _runtest_for
│   │   │           yield
│   │   │       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
│   │   │       _ _ _ _ _ _ _ _ 
│   │   │       
│   │   │       self = <CaptureManager _method='no' 
│   │   │       _global_capturing=<MultiCapture out=None err=None in_=None 
│   │   │       _state='suspended' _in_suspended=False> _capture_fixture=None>
│   │   │       item = <Function test_stop_iteration_direct>
│   │   │       
│   │   │           @hookimpl(wrapper=True)
│   │   │           def pytest_runtest_call(self, item: Item) -> 
│   │   │       Generator[None]:
│   │   │               with self.item_capture("call", item):
│   │   │       >           return (yield)
│   │   │       E           RuntimeError: generator raised StopIteration
│   │   │       
│   │   │       .pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.p
│   │   │       y:880: RuntimeError
│   │   └── teardown
│   │       ├── duration: 0.00026526302099227905
│   │       └── 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.0001520321238785982
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00018963217735290527
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│   │   │   │   ├── lineno: 110
│   │   │   │   └── message: GeneratorExit
│   │   │   ├── traceback
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_math_utils.py
│   │   │   │       ├── lineno: 110
│   │   │   │       └── message: GeneratorExit
│   │   │   └── longrepr: def test_generator_exit_direct():
│   │   │               # Directly raise GeneratorExit exception
│   │   │       >       raise GeneratorExit()
│   │   │       E       GeneratorExit
│   │   │       
│   │   │       tests/test_math_utils.py:110: GeneratorExit
│   │   └── teardown
│   │       ├── duration: 0.0002042280975729227
│   │       └── 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.00013976986519992352
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0001903229858726263
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│   │   │   │   ├── lineno: 114
│   │   │   │   └── message:   File "<string>", line 1
│   │   │   │           def bad(:
│   │   │   │                   ^
│   │   │   │       SyntaxError: invalid syntax
│   │   │   ├── traceback
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_math_utils.py
│   │   │   │       ├── lineno: 114
│   │   │   │       └── message: SyntaxError
│   │   │   └── longrepr: def test_malformed_code():
│   │   │               # SyntaxError when executing malformed Python code
│   │   │       >       exec("def bad(:\n pass")
│   │   │       E         File "<string>", line 1
│   │   │       E           def bad(:
│   │   │       E                   ^
│   │   │       E       SyntaxError: invalid syntax
│   │   │       
│   │   │       tests/test_math_utils.py:114: SyntaxError
│   │   └── teardown
│   │       ├── duration: 0.00016177096404135227
│   │       └── 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.0001314289402216673
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0001717940904200077
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│   │   │   │   ├── lineno: 118
│   │   │   │   └── message: SystemExit: 1
│   │   │   ├── traceback
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_math_utils.py
│   │   │   │       ├── lineno: 118
│   │   │   │       └── message: SystemExit
│   │   │   └── longrepr: def test_sys_exit():
│   │   │               # Simulate SystemExit via sys.exit
│   │   │       >       sys.exit(1)
│   │   │       E       SystemExit: 1
│   │   │       
│   │   │       tests/test_math_utils.py:118: SystemExit
│   │   └── teardown
│   │       ├── duration: 0.00015293387696146965
│   │       └── 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.0001331539824604988
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00017379201017320156
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│   │   │   │   ├── lineno: 123
│   │   │   │   └── message: TypeError: Broken function
│   │   │   ├── traceback
│   │   │   │   ├── -
│   │   │   │   │   ├── path: tests/test_math_utils.py
│   │   │   │   │   ├── lineno: 124
│   │   │   │   │   └── message: 
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_math_utils.py
│   │   │   │       ├── lineno: 123
│   │   │   │       └── message: TypeError
│   │   │   └── longrepr: def test_broken_function():
│   │   │               # Simulate broken function raising TypeError
│   │   │               def broken_func(*args, **kwargs):
│   │   │                   raise TypeError("Broken function")
│   │   │       >       broken_func()
│   │   │       
│   │   │       tests/test_math_utils.py:124: 
│   │   │       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
│   │   │       _ _ _ _ _ _ _ _ 
│   │   │       
│   │   │       args = (), kwargs = {}
│   │   │       
│   │   │           def broken_func(*args, **kwargs):
│   │   │       >       raise TypeError("Broken function")
│   │   │       E       TypeError: Broken function
│   │   │       
│   │   │       tests/test_math_utils.py:123: TypeError
│   │   └── teardown
│   │       ├── duration: 0.00014926400035619736
│   │       └── 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.0001239050179719925
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00017003598622977734
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│   │   │   │   ├── lineno: 128
│   │   │   │   └── message: ImportError: Simulated ImportError
│   │   │   ├── traceback
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_math_utils.py
│   │   │   │       ├── lineno: 128
│   │   │   │       └── message: ImportError
│   │   │   └── longrepr: def test_import_error():
│   │   │               # Directly raise ImportError exception
│   │   │       >       raise ImportError("Simulated ImportError")
│   │   │       E       ImportError: Simulated ImportError
│   │   │       
│   │   │       tests/test_math_utils.py:128: ImportError
│   │   └── teardown
│   │       ├── duration: 0.00015096087008714676
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_math_utils.py::test_module_not_found_error
│   │   ├── lineno: 129
│   │   ├── outcome: failed
│   │   ├── keywords
│   │   │   ├── test_module_not_found_error
│   │   │   ├── test_math_utils.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.00013008411042392254
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0005051868502050638
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: <frozen importlib._bootstrap>
│   │   │   │   ├── lineno: 973
│   │   │   │   └── message: ModuleNotFoundError: No module named 
│   │   │   │       'non_existent_module_xyz'
│   │   │   ├── traceback
│   │   │   │   ├── -
│   │   │   │   │   ├── path: tests/test_math_utils.py
│   │   │   │   │   ├── lineno: 132
│   │   │   │   │   └── message: 
│   │   │   │   ├── -
│   │   │   │   │   ├── path: 
│   │   │   │   │   │   .pixi/envs/default/lib/python3.8/importlib/__init__.py
│   │   │   │   │   ├── lineno: 127
│   │   │   │   │   └── message: in import_module
│   │   │   │   ├── -
│   │   │   │   │   ├── path: <frozen importlib._bootstrap>
│   │   │   │   │   ├── lineno: 1014
│   │   │   │   │   └── message: in _gcd_import
│   │   │   │   ├── -
│   │   │   │   │   ├── path: <frozen importlib._bootstrap>
│   │   │   │   │   ├── lineno: 991
│   │   │   │   │   └── message: in _find_and_load
│   │   │   │   └── -
│   │   │   │       ├── path: <frozen importlib._bootstrap>
│   │   │   │       ├── lineno: 973
│   │   │   │       └── message: ModuleNotFoundError
│   │   │   └── longrepr: def test_module_not_found_error():
│   │   │               # Raises ModuleNotFoundError (subclass of ImportError) 
│   │   │       for missing module
│   │   │       >       importlib.import_module("non_existent_module_xyz")
│   │   │       
│   │   │       tests/test_math_utils.py:132: 
│   │   │       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
│   │   │       _ _ _ _ _ _ _ _ 
│   │   │       .pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in 
│   │   │       import_module
│   │   │           return _bootstrap._gcd_import(name, package, level)
│   │   │       <frozen importlib._bootstrap>:1014: in _gcd_import
│   │   │           ???
│   │   │       <frozen importlib._bootstrap>:991: in _find_and_load
│   │   │           ???
│   │   │       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
│   │   │       _ _ _ _ _ _ _ _ 
│   │   │       
│   │   │       name = 'non_existent_module_xyz'
│   │   │       import_ = <function _gcd_import at 0x7f5e1d1f94c0>
│   │   │       
│   │   │       >   ???
│   │   │       E   ModuleNotFoundError: No module named 
│   │   │       'non_existent_module_xyz'
│   │   │       
│   │   │       <frozen importlib._bootstrap>:973: ModuleNotFoundError
│   │   └── teardown
│   │       ├── duration: 0.0001439480111002922
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_basic_ids
│   │   ├── lineno: 3
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_basic_ids
│   │   │   ├── parametrize
│   │   │   ├── pytestmark
│   │   │   ├── one
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.00025756796821951866
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0001470439601689577
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00013135490007698536
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_basic_ids
│   │   ├── lineno: 3
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_basic_ids
│   │   │   ├── parametrize
│   │   │   ├── pytestmark
│   │   │   ├── two
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.00018713600002229214
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00013437913730740547
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00012047914788126945
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_with_reason_and_marks
│   │   ├── lineno: 11
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_with_reason_and_marks
│   │   │   ├── parametrize
│   │   │   ├── pytestmark
│   │   │   ├── ten
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.0001848300453275442
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00013628089800477028
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00012180302292108536
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_with_reason_and_marks
│   │   ├── lineno: 11
│   │   ├── outcome: skipped
│   │   ├── keywords
│   │   │   ├── test_with_reason_and_marks
│   │   │   ├── parametrize
│   │   │   ├── skip
│   │   │   ├── pytestmark
│   │   │   ├── twenty
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.0002275579608976841
│   │   │   ├── outcome: skipped
│   │   │   └── longrepr: ('/workspace/tligui_y/slic/tests/test_param.py', 12, 
│   │   │       'Skipped: nope')
│   │   └── teardown
│   │       ├── duration: 0.00011404301039874554
│   │       └── 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.00024095107801258564
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00013704621233046055
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00013483990915119648
│   │       └── 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.00021133199334144592
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00014548609033226967
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00014338502660393715
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_non_literal_with_id
│   │   ├── lineno: 27
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_non_literal_with_id
│   │   │   ├── parametrize
│   │   │   ├── pytestmark
│   │   │   ├── custom-obj
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.00017420202493667603
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00012949807569384575
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00012655206955969334
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_timedistance_v1
│   │   ├── lineno: 43
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_timedistance_v1
│   │   │   ├── parametrize
│   │   │   ├── pytestmark
│   │   │   ├── a0-b0-expected0
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.00026687816716730595
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00013623898848891258
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00015072012320160866
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_timedistance_v1
│   │   ├── lineno: 43
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_timedistance_v1
│   │   │   ├── parametrize
│   │   │   ├── pytestmark
│   │   │   ├── a1-b1-expected1
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.0002501169219613075
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00013835891149938107
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00015208986587822437
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_sum_positive
│   │   ├── lineno: 55
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_sum_positive
│   │   │   ├── parametrize
│   │   │   ├── pytestmark
│   │   │   ├── one
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.00021790387108922005
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00014064600691199303
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.0001319320872426033
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_sum_positive
│   │   ├── lineno: 55
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_sum_positive
│   │   │   ├── parametrize
│   │   │   ├── pytestmark
│   │   │   ├── two
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.00022111600264906883
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00014326488599181175
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00013408600352704525
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_sum_positive
│   │   ├── lineno: 55
│   │   ├── outcome: failed
│   │   ├── keywords
│   │   │   ├── test_sum_positive
│   │   │   ├── parametrize
│   │   │   ├── pytestmark
│   │   │   ├── edge
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.00021722912788391113
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00026942603290081024
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_param.py
│   │   │   │   ├── lineno: 58
│   │   │   │   └── message: assert (-1 + -1) >= 0
│   │   │   ├── traceback
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_param.py
│   │   │   │       ├── lineno: 58
│   │   │   │       └── message: AssertionError
│   │   │   └── longrepr: x = -1, y = -1
│   │   │       
│   │   │           @pytest.mark.parametrize("x, y", [(param["x"], param["y"]) 
│   │   │       for _, param in scenarios], ids=)
│   │   │           def test_sum_positive(x, y):
│   │   │       >       assert (x + y) >= 0
│   │   │       E       assert (-1 + -1) >= 0
│   │   │       
│   │   │       tests/test_param.py:58: AssertionError
│   │   └── teardown
│   │       ├── duration: 0.00019026082009077072
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_dynamic
│   │   ├── lineno: 65
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_dynamic
│   │   │   ├── ten
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.00019479193724691868
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00014833384193480015
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00013587111607193947
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_dynamic
│   │   ├── lineno: 65
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_dynamic
│   │   │   ├── twenty
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.00017466489225625992
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00013969698920845985
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00012452900409698486
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_dynamic
│   │   ├── lineno: 65
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_dynamic
│   │   │   ├── thirty
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.0001698560081422329
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00013146596029400826
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.0001204698346555233
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_element_type[\U0001f525]
│   │   ├── lineno: 74
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_element_type[\U0001f525]
│   │   │   ├── \U0001f525
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.0001791277900338173
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0001352168619632721
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.000123264966532588
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_element_type[\U0001f4a7]
│   │   ├── lineno: 74
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_element_type[\U0001f4a7]
│   │   │   ├── \U0001f4a7
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.00017026904970407486
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00012917700223624706
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00012399698607623577
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_element_type[\U0001f30d]
│   │   ├── lineno: 74
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_element_type[\U0001f30d]
│   │   │   ├── \U0001f30d
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.00017317896708846092
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0001419619657099247
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00019158120267093182
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_combination
│   │   ├── lineno: 78
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_combination
│   │   │   ├── parametrize
│   │   │   ├── pytestmark
│   │   │   ├── a-1
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.0002536980900913477
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00016153394244611263
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00013940897770226002
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_combination
│   │   ├── lineno: 78
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_combination
│   │   │   ├── parametrize
│   │   │   ├── pytestmark
│   │   │   ├── a-2
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.00026779784820973873
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0001399889588356018
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00013874191790819168
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_combination
│   │   ├── lineno: 78
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_combination
│   │   │   ├── parametrize
│   │   │   ├── pytestmark
│   │   │   ├── b-1
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.00024635600857436657
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00013611698523163795
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.0001438430044800043
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_combination
│   │   ├── lineno: 78
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_combination
│   │   │   ├── parametrize
│   │   │   ├── pytestmark
│   │   │   ├── b-2
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.00022392184473574162
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00013227621093392372
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00016870908439159393
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_indirect_fixture[1]
│   │   ├── lineno: 89
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_indirect_fixture[1]
│   │   │   ├── parametrize
│   │   │   ├── pytestmark
│   │   │   ├── 1
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.00019392394460737705
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0001343800686299801
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00013443292118608952
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_indirect_fixture[2]
│   │   ├── lineno: 89
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_indirect_fixture[2]
│   │   │   ├── parametrize
│   │   │   ├── pytestmark
│   │   │   ├── 2
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.00018416903913021088
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00018373597413301468
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00013282708823680878
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_addition
│   │   ├── lineno: 94
│   │   ├── outcome: failed
│   │   ├── keywords
│   │   │   ├── test_addition
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.00010716496035456657
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00018866709433495998
│   │   │   ├── outcome: failed
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_param.py
│   │   │   │   ├── lineno: 97
│   │   │   │   └── message: NameError: name 'addition' is not defined
│   │   │   ├── traceback
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_param.py
│   │   │   │       ├── lineno: 97
│   │   │   │       └── message: NameError
│   │   │   └── longrepr: a = 5, b = 5, expected = 10
│   │   │       
│   │   │           def test_addition(a = 5, b = 5, expected = 10):
│   │   │               # Has to pass
│   │   │       >       assert addition(a, b) == expected
│   │   │       E       NameError: name 'addition' is not defined
│   │   │       
│   │   │       tests/test_param.py:97: NameError
│   │   └── teardown
│   │       ├── duration: 0.00016465899534523487
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_param.py::test_basic_error
│   │   ├── lineno: 99
│   │   ├── outcome: error
│   │   ├── keywords
│   │   │   ├── test_basic_error
│   │   │   ├── test_param.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.0001660508569329977
│   │   │   ├── outcome: failed
│   │   │   └── longrepr: file /workspace/tligui_y/slic/tests/test_param.py, 
│   │   │       line 100
│   │   │         def test_basic_error(x):
│   │   │       E       fixture 'x' not found
│   │   │       >       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
│   │   │       >       use 'pytest --fixtures ' for help on them.
│   │   │       
│   │   │       /workspace/tligui_y/slic/tests/test_param.py:100
│   │   └── teardown
│   │       ├── duration: 0.00013512792065739632
│   │       └── 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.00012767408043146133
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00017933291383087635
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00010522082448005676
│   │       └── 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.00011701881885528564
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00018121208995580673
│   │   │   ├── 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():
│   │   │               # TypeError when input is None (invalid input)
│   │   │       >       uppercase(None)
│   │   │       
│   │   │       tests/test_string_utils.py:16: 
│   │   │       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
│   │   │       _ _ _ _ _ _ _ _ 
│   │   │       
│   │   │       s = None
│   │   │       
│   │   │           def uppercase(s):
│   │   │               if s is None:
│   │   │       >           raise TypeError("Input cannot be None")
│   │   │       E           TypeError: Input cannot be None
│   │   │       
│   │   │       functions/string_utils.py:3: TypeError
│   │   └── teardown
│   │       ├── duration: 0.0001552058383822441
│   │       └── 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.00012286496348679066
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0001720888540148735
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00010836799629032612
│   │       └── 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.00011102785356342793
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00017778808251023293
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00010575889609754086
│   │       └── 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.00011820811778306961
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00018500187434256077
│   │   │   ├── 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():
│   │   │               # UnicodeDecodeError when decoding invalid byte sequence
│   │   │       >       b'\xff'.decode('utf-8')
│   │   │       E       UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff
│   │   │       in position 0: invalid start byte
│   │   │       
│   │   │       tests/test_string_utils.py:28: UnicodeDecodeError
│   │   └── teardown
│   │       ├── duration: 0.0001385181676596403
│   │       └── 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.0001445319503545761
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.000169496051967144
│   │   │   ├── 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():
│   │   │               # UnicodeDecodeError with strict error handler on 
│   │   │       invalid byte
│   │   │       >       b"\x80".decode("utf-8", errors="strict")
│   │   │       E       UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80
│   │   │       in position 0: invalid start byte
│   │   │       
│   │   │       tests/test_string_utils.py:32: UnicodeDecodeError
│   │   └── teardown
│   │       ├── duration: 0.0001368951052427292
│   │       └── outcome: passed
│   ├── -
│   │   ├── nodeid: tests/test_string_utils.py::test_syntax_warning
│   │   ├── lineno: 33
│   │   ├── outcome: passed
│   │   ├── keywords
│   │   │   ├── test_syntax_warning
│   │   │   ├── test_string_utils.py
│   │   │   ├── tests
│   │   │   ├── slic
│   │   │   └── 
│   │   ├── setup
│   │   │   ├── duration: 0.00014109909534454346
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.00016872701235115528
│   │   │   └── outcome: passed
│   │   └── teardown
│   │       ├── duration: 0.00010892190039157867
│   │       └── 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.0001453189179301262
│   │   │   └── outcome: passed
│   │   ├── call
│   │   │   ├── duration: 0.0006522811017930508
│   │   │   ├── outcome: skipped
│   │   │   ├── crash
│   │   │   │   ├── path: /workspace/tligui_y/slic/tests/test_string_utils.py
│   │   │   │   ├── lineno: 41
│   │   │   │   └── message: AssertionError: assert 'ABC123' == 'ABC1234'
│   │   │   │         
│   │   │   │         - ABC1234
│   │   │   │         ?       -
│   │   │   │         + ABC123
│   │   │   ├── traceback
│   │   │   │   └── -
│   │   │   │       ├── path: tests/test_string_utils.py
│   │   │   │       ├── lineno: 41
│   │   │   │       └── message: AssertionError
│   │   │   └── longrepr: @pytest.mark.xfail(reason="Expected failure: uppercase
│   │   │       does not handle digits")
│   │   │           def test_xfail_uppercase_digits():
│   │   │               # Expected fail test because uppercase won't change 
│   │   │       digits
│   │   │       >       assert uppercase("abc123") == "ABC1234"
│   │   │       E       AssertionError: assert 'ABC123' == 'ABC1234'
│   │   │       E         
│   │   │       E         - ABC1234
│   │   │       E         ?       -
│   │   │       E         + ABC123
│   │   │       
│   │   │       tests/test_string_utils.py:41: AssertionError
│   │   └── teardown
│   │       ├── duration: 0.0001415470615029335
│   │       └── 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.0001230181660503149
│           └── outcome: passed
└── warnings
    ├── -
    │   ├── message: Test warning
    │   ├── category: UserWarning
    │   ├── when: runtest
    │   ├── filename: /workspace/tligui_y/slic/tests/test_string_utils.py
    │   └── lineno: 24
    └── -
        ├── message: This is a syntax warning
        ├── category: SyntaxWarning
        ├── when: runtest
        ├── filename: /workspace/tligui_y/slic/tests/test_string_utils.py
        └── lineno: 36
