diff --git a/ci-reports/markdown/TEST-REPORT.md b/ci-reports/markdown/TEST-REPORT.md
index 9e2f297f..d4ecf481 100644
--- a/ci-reports/markdown/TEST-REPORT.md
+++ b/ci-reports/markdown/TEST-REPORT.md
@@ -1,6 +1,58 @@
-๐ **Internal error during testing**
+โ ๏ธ **Test execution interrupted**
-> An internal error occurred while executing the tests.
+> The test run was interrupted by the user (reasons : KeyboardInterrupt or ...).
+
+
+๐ Short test summary info
+
+```
+=========================== short test summary info ============================
+FAILED tests/test_io_utils.py::test_cause_io_error - OSError: Forced IO Error for testing
+FAILED tests/test_io_utils.py::test_file_not_found - FileNotFoundError: [Errno 2] No such file or directory: 'nonexistent.file'
+FAILED tests/test_io_utils.py::test_permission_error - PermissionError: Permission denied
+FAILED tests/test_io_utils.py::test_mock_open_error - OSError: Mocked IOError
+FAILED tests/test_io_utils.py::test_file_handle_closed_error - ValueError: I/O operation on closed file
+FAILED tests/test_io_utils.py::test_os_error - OSError: Simulated OSError
+FAILED tests/test_io_utils.py::test_file_not_found_error - FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt'
+FAILED tests/test_math_utils.py::test_broken - NameError: name 'want_the_test_to_fail' is not defined
+FAILED tests/test_math_utils.py::test_call_missing_function - AttributeError: module 'functions.math_utils' has no attribute 'non_existent_function'
+FAILED tests/test_math_utils.py::test_addition_fail - assert 4 == 5
+ + where 4 = addition(2, 2)
+FAILED tests/test_math_utils.py::test_division_zero - ZeroDivisionError: division by zero
+FAILED tests/test_math_utils.py::test_runtime_error - RuntimeError: Forced runtime error
+FAILED tests/test_math_utils.py::test_memory_error - MemoryError: Simulated memory error
+FAILED tests/test_math_utils.py::test_timeout_error - TimeoutError: Simulated timeout error
+FAILED tests/test_math_utils.py::test_recursion_error - RecursionError: maximum recursion depth exceeded
+FAILED tests/test_math_utils.py::test_floating_point_error - FloatingPointError: Simulated floating point error
+FAILED tests/test_math_utils.py::test_floating_point_overflow - OverflowError: math range error
+FAILED tests/test_math_utils.py::test_value_error - ValueError: invalid literal for int() with base 10: 'invalid'
+FAILED tests/test_math_utils.py::test_wrong_argument_error - TypeError: 'int' object is not iterable
+FAILED tests/test_math_utils.py::test_unhandled_exception - Exception: Generic unhandled exception
+FAILED tests/test_math_utils.py::test_custom_error - test_math_utils.CustomError: Custom error simulation
+FAILED tests/test_math_utils.py::test_stop_iteration_direct - RuntimeError: generator raised StopIteration
+FAILED tests/test_math_utils.py::test_generator_exit_direct - GeneratorExit
+FAILED tests/test_math_utils.py::test_malformed_code - File "", line 1
+ def bad(:
+ ^
+SyntaxError: invalid syntax
+FAILED tests/test_math_utils.py::test_sys_exit - SystemExit: 1
+FAILED tests/test_math_utils.py::test_broken_function - TypeError: Broken function
+FAILED tests/test_math_utils.py::test_import_error - ImportError: Simulated ImportError
+FAILED tests/test_math_utils.py::test_module_not_found_error - ModuleNotFoundError: No module named 'non_existent_module_xyz'
+FAILED tests/test_param.py::test_sum_positive[edge] - assert (-1 + -1) >= 0
+FAILED tests/test_param.py::test_addition - NameError: name 'addition' is not defined
+FAILED tests/test_string_utils.py::test_uppercase_type_error - TypeError: Input cannot be None
+FAILED tests/test_string_utils.py::test_unicode_decode_error - UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
+FAILED tests/test_string_utils.py::test_unicode_decode_surrogateescape - UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
+ERROR tests/test_broken_fct.py
+ERROR tests/test_collector_error.py
+ERROR tests/test_param.py::test_basic_error
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! KeyboardInterrupt !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+/workspace/tligui_y/slic/tests/test_string_utils.py:51: KeyboardInterrupt
+(to show a full traceback on KeyboardInterrupt use --full-trace)
+== 33 failed, 37 passed, 1 skipped, 2 xfailed, 2 warnings, 3 errors in 0.81s ===
+```
+
๐ชต Full raw pytest log
@@ -9,60 +61,5590 @@
============================= test session starts ==============================
platform linux -- Python 3.8.20, pytest-8.3.4, pluggy-1.5.0
rootdir: /workspace/tligui_y/slic
-plugins: html-4.1.1, metadata-3.1.1, allure-pytest-2.13.5, cov-5.0.0, json-report-0.8.0.dev0, md-report-0.6.2
+plugins: metadata-3.1.1, html-4.1.1, allure-pytest-2.13.5, cov-5.0.0, json-report-1.3.0
collected 75 items / 2 errors
-INTERNALERROR> Traceback (most recent call last):
-INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/main.py", line 283, in wrap_session
-INTERNALERROR> session.exitstatus = doit(config, session) or 0
-INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/main.py", line 336, in _main
-INTERNALERROR> config.hook.pytest_collection(session=session)
-INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pluggy/_hooks.py", line 513, in __call__
-INTERNALERROR> return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
-INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pluggy/_manager.py", line 120, in _hookexec
-INTERNALERROR> return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
-INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pluggy/_callers.py", line 139, in _multicall
-INTERNALERROR> raise exception.with_traceback(exception.__traceback__)
-INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pluggy/_callers.py", line 122, in _multicall
-INTERNALERROR> teardown.throw(exception) # type: ignore[union-attr]
-INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py", line 790, in pytest_collection
-INTERNALERROR> return (yield)
-INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pluggy/_callers.py", line 122, in _multicall
-INTERNALERROR> teardown.throw(exception) # type: ignore[union-attr]
-INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/warnings.py", line 121, in pytest_collection
-INTERNALERROR> return (yield)
-INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pluggy/_callers.py", line 122, in _multicall
-INTERNALERROR> teardown.throw(exception) # type: ignore[union-attr]
-INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/config/__init__.py", line 1417, in pytest_collection
-INTERNALERROR> return (yield)
-INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pluggy/_callers.py", line 103, in _multicall
-INTERNALERROR> res = hook_impl.function(*args)
-INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/main.py", line 347, in pytest_collection
-INTERNALERROR> session.perform_collect()
-INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/main.py", line 811, in perform_collect
-INTERNALERROR> self.config.pluginmanager.check_pending()
-INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pluggy/_manager.py", line 391, in check_pending
-INTERNALERROR> raise PluginValidationError(
-INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warning_captured' in plugin
-============================== 2 errors in 0.18s ===============================
+tests/test_io_utils.py ..FFFFFF.F
+tests/test_math_utils.py FF........FFxFFFFFFFFFFFFFFFFF
+tests/test_param.py ...s.......F............FE
+tests/test_string_utils.py .F..FF.x
+
+==================================== ERRORS ====================================
+__________________ ERROR collecting tests/test_broken_fct.py ___________________
+.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:587: 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[level:], package, level)
+:1014: in _gcd_import
+ ???
+:991: in _find_and_load
+ ???
+:975: in _find_and_load_unlocked
+ ???
+:671: in _load_unlocked
+ ???
+.pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rewrite.py:175: in exec_module
+ source_stat, co = _rewrite_test(fn, self.config)
+.pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rewrite.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
+________________ ERROR collecting tests/test_collector_error.py ________________
+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[level:], package, level)
+tests/test_collector_error.py:1: in
+ from no_existing_module.math_utils import *
+E ModuleNotFoundError: No module named 'no_existing_module'
+______________________ ERROR at setup of test_basic_error ______________________
+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 [testpath]' for help on them.
+
+/workspace/tligui_y/slic/tests/test_param.py:100
+=================================== FAILURES ===================================
+_____________________________ test_cause_io_error ______________________________
+
+ 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
+_____________________________ test_file_not_found ______________________________
+
+ 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
+____________________________ test_permission_error _____________________________
+
+monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fe4e2616af0>
+
+ 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
+_____________________________ test_mock_open_error _____________________________
+
+monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fe4e4b609d0>
+
+ 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 =
+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
+________________________ test_file_handle_closed_error _________________________
+
+ 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
+________________________________ test_os_error _________________________________
+
+monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fe4e4a56130>
+
+ 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
+__________________________ test_file_not_found_error ___________________________
+
+ 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
+_________________________________ test_broken __________________________________
+
+ 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
+__________________________ test_call_missing_function __________________________
+
+ 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
+______________________________ test_addition_fail ______________________________
+
+ 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
+______________________________ test_division_zero ______________________________
+
+ 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
+______________________________ test_runtime_error ______________________________
+
+ 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
+______________________________ test_memory_error _______________________________
+
+ 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
+______________________________ test_timeout_error ______________________________
+
+ 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
+_____________________________ test_recursion_error _____________________________
+
+ 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)
+__________________________ test_floating_point_error ___________________________
+
+ 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
+_________________________ test_floating_point_overflow _________________________
+
+ def test_floating_point_overflow():
+ # Exponential overflow triggers OverflowError
+> math.exp(1000)
+E OverflowError: math range error
+
+tests/test_math_utils.py:86: OverflowError
+_______________________________ test_value_error _______________________________
+
+ 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
+__________________________ test_wrong_argument_error ___________________________
+
+ 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
+___________________________ test_unhandled_exception ___________________________
+
+ 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
+______________________________ test_custom_error _______________________________
+
+ 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
+__________________________ test_stop_iteration_direct __________________________
+
+ 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 =
+func = . at 0x7fe4e263e790>
+when = 'call'
+reraise = (, )
+
+ @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: 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.py:120: in _hookexec
+ return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
+.pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py:92: in pytest_runtest_call
+ yield from thread_exception_runtest_hook()
+.pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py:68: in thread_exception_runtest_hook
+ yield
+.pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py:95: in pytest_runtest_call
+ yield from unraisable_exception_runtest_hook()
+.pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py:70: in unraisable_exception_runtest_hook
+ yield
+.pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py:846: in pytest_runtest_call
+ yield from self._runtest_for(item, "call")
+.pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py:829: in _runtest_for
+ yield
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+self = _capture_fixture=None>
+item =
+
+ @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.py:880: RuntimeError
+__________________________ test_generator_exit_direct __________________________
+
+ def test_generator_exit_direct():
+ # Directly raise GeneratorExit exception
+> raise GeneratorExit()
+E GeneratorExit
+
+tests/test_math_utils.py:110: GeneratorExit
+_____________________________ test_malformed_code ______________________________
+
+ def test_malformed_code():
+ # SyntaxError when executing malformed Python code
+> exec("def bad(:\n pass")
+E File "", line 1
+E def bad(:
+E ^
+E SyntaxError: invalid syntax
+
+tests/test_math_utils.py:114: SyntaxError
+________________________________ test_sys_exit _________________________________
+
+ def test_sys_exit():
+ # Simulate SystemExit via sys.exit
+> sys.exit(1)
+E SystemExit: 1
+
+tests/test_math_utils.py:118: SystemExit
+_____________________________ test_broken_function _____________________________
+
+ 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
+______________________________ test_import_error _______________________________
+
+ def test_import_error():
+ # Directly raise ImportError exception
+> raise ImportError("Simulated ImportError")
+E ImportError: Simulated ImportError
+
+tests/test_math_utils.py:128: ImportError
+_________________________ test_module_not_found_error __________________________
+
+ 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[level:], package, level)
+:1014: in _gcd_import
+ ???
+:991: in _find_and_load
+ ???
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+name = 'non_existent_module_xyz'
+import_ =
+
+> ???
+E ModuleNotFoundError: No module named 'non_existent_module_xyz'
+
+:973: ModuleNotFoundError
+___________________________ test_sum_positive[edge] ____________________________
+
+x = -1, y = -1
+
+ @pytest.mark.parametrize("x, y", [(param["x"], param["y"]) for _, param in scenarios], ids=[name for name, _ in scenarios])
+ def test_sum_positive(x, y):
+> assert (x + y) >= 0
+E assert (-1 + -1) >= 0
+
+tests/test_param.py:58: AssertionError
+________________________________ test_addition _________________________________
+
+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
+__________________________ test_uppercase_type_error ___________________________
+
+ 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
+__________________________ test_unicode_decode_error ___________________________
+
+ 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
+_____________________ test_unicode_decode_surrogateescape ______________________
+
+ 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
+=============================== warnings summary ===============================
+tests/test_string_utils.py::test_warning_emit
+ /workspace/tligui_y/slic/tests/test_string_utils.py:24: UserWarning: Test warning
+ warnings.warn("Test warning", UserWarning)
+
+tests/test_string_utils.py::test_syntax_warning
+ /workspace/tligui_y/slic/tests/test_string_utils.py:36: SyntaxWarning: This is a syntax warning
+ warnings.warn("This is a syntax warning", SyntaxWarning)
+
+-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
+--------------------------------- JSON report ----------------------------------
+JSON report written to: ci-reports/markdown/pytest-report.json (70739 bytes)
+
+---------- coverage: platform linux, python 3.8.20-final-0 -----------
+Coverage HTML written to dir ci-reports/coverage/
+Coverage XML written to file ci-reports/coverage/coverage.xml
+
+=========================== short test summary info ============================
+FAILED tests/test_io_utils.py::test_cause_io_error - OSError: Forced IO Error for testing
+FAILED tests/test_io_utils.py::test_file_not_found - FileNotFoundError: [Errno 2] No such file or directory: 'nonexistent.file'
+FAILED tests/test_io_utils.py::test_permission_error - PermissionError: Permission denied
+FAILED tests/test_io_utils.py::test_mock_open_error - OSError: Mocked IOError
+FAILED tests/test_io_utils.py::test_file_handle_closed_error - ValueError: I/O operation on closed file
+FAILED tests/test_io_utils.py::test_os_error - OSError: Simulated OSError
+FAILED tests/test_io_utils.py::test_file_not_found_error - FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt'
+FAILED tests/test_math_utils.py::test_broken - NameError: name 'want_the_test_to_fail' is not defined
+FAILED tests/test_math_utils.py::test_call_missing_function - AttributeError: module 'functions.math_utils' has no attribute 'non_existent_function'
+FAILED tests/test_math_utils.py::test_addition_fail - assert 4 == 5
+ + where 4 = addition(2, 2)
+FAILED tests/test_math_utils.py::test_division_zero - ZeroDivisionError: division by zero
+FAILED tests/test_math_utils.py::test_runtime_error - RuntimeError: Forced runtime error
+FAILED tests/test_math_utils.py::test_memory_error - MemoryError: Simulated memory error
+FAILED tests/test_math_utils.py::test_timeout_error - TimeoutError: Simulated timeout error
+FAILED tests/test_math_utils.py::test_recursion_error - RecursionError: maximum recursion depth exceeded
+FAILED tests/test_math_utils.py::test_floating_point_error - FloatingPointError: Simulated floating point error
+FAILED tests/test_math_utils.py::test_floating_point_overflow - OverflowError: math range error
+FAILED tests/test_math_utils.py::test_value_error - ValueError: invalid literal for int() with base 10: 'invalid'
+FAILED tests/test_math_utils.py::test_wrong_argument_error - TypeError: 'int' object is not iterable
+FAILED tests/test_math_utils.py::test_unhandled_exception - Exception: Generic unhandled exception
+FAILED tests/test_math_utils.py::test_custom_error - test_math_utils.CustomError: Custom error simulation
+FAILED tests/test_math_utils.py::test_stop_iteration_direct - RuntimeError: generator raised StopIteration
+FAILED tests/test_math_utils.py::test_generator_exit_direct - GeneratorExit
+FAILED tests/test_math_utils.py::test_malformed_code - File "", line 1
+ def bad(:
+ ^
+SyntaxError: invalid syntax
+FAILED tests/test_math_utils.py::test_sys_exit - SystemExit: 1
+FAILED tests/test_math_utils.py::test_broken_function - TypeError: Broken function
+FAILED tests/test_math_utils.py::test_import_error - ImportError: Simulated ImportError
+FAILED tests/test_math_utils.py::test_module_not_found_error - ModuleNotFoundError: No module named 'non_existent_module_xyz'
+FAILED tests/test_param.py::test_sum_positive[edge] - assert (-1 + -1) >= 0
+FAILED tests/test_param.py::test_addition - NameError: name 'addition' is not defined
+FAILED tests/test_string_utils.py::test_uppercase_type_error - TypeError: Input cannot be None
+FAILED tests/test_string_utils.py::test_unicode_decode_error - UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
+FAILED tests/test_string_utils.py::test_unicode_decode_surrogateescape - UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
+ERROR tests/test_broken_fct.py
+ERROR tests/test_collector_error.py
+ERROR tests/test_param.py::test_basic_error
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! KeyboardInterrupt !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+/workspace/tligui_y/slic/tests/test_string_utils.py:51: KeyboardInterrupt
+(to show a full traceback on KeyboardInterrupt use --full-trace)
+== 33 failed, 37 passed, 1 skipped, 2 xfailed, 2 warnings, 3 errors in 0.81s ===
```
---
# ๐งช Test Report
-*Generated on 2025-07-21 10:12:31 CEST*
+*Generated on 2025-07-21 10:22:31 CEST*
## ๐งพ General Info
-- **duration**: 0.1884441375732422
+- **duration**: 0.8041284084320068
- **root**: /workspace/tligui_y/slic
- **environment**: {}
## ๐ Summary
-- **Total**: 0
+- **Passed**: 38
+- **Failed**: 33
+- **Xfailed**: 2
+- **Skipped**: 1
+- **Error**: 1
+- **Total**: 75
+- **Collected**: 75
## ๐ Tests
+
+โ
Passed (38)
+
+ -
+ ๐ test_io_utils.py
+
+ โณ Function: test_write_file
+ -
+ โ
Test 1
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.003419185057282448
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.000472470885142684
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00024303095415234566
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_read_file
+ -
+ โ
Test 2
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0004742399323731661
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0002890131436288357
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001505659893155098
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_write_file_in_readonly_mode
+ -
+ โ
Test 9
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0006433418020606041
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0011733209248632193
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00015070708468556404
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+
+
+ -
+ ๐ test_math_utils.py
+
+ โณ Function: test_addition_pass
+ -
+ โ
Test 13
(params: a=2, b=2, expected=4)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ a: 2
+ b: 2
+ expected: 4
+ id: 2-2-4
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00031072297133505344
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00014862394891679287
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00015942403115332127
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ -
+ โ
Test 14
(params: a=1, b=5, expected=6)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ a: 1
+ b: 5
+ expected: 6
+ id: 1-5-6
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0002567949704825878
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001669351477175951
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00014910101890563965
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ -
+ โ
Test 15
(params: a=3, b=4, expected=7)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ a: 3
+ b: 4
+ expected: 7
+ id: 3-4-7
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00024331314489245415
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00014110002666711807
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013592513278126717
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ -
+ โ
Test 16
(params: a=3, b=5, expected=8)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ a: 3
+ b: 5
+ expected: 8
+ id: 3-5-8
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00024708383716642857
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00014045112766325474
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013470486737787724
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ -
+ โ
Test 17
(params: a=3, b=6, expected=9)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ a: 3
+ b: 6
+ expected: 9
+ id: 3-6-9
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00024416414089500904
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00015440606512129307
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00014007603749632835
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_addition_pass_id
+ -
+ โ
Test 18
(params: a=2, b=2, expected=4)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ a: 2
+ b: 2
+ expected: 4
+ id: a=2,b=2,expected=4
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0002395219635218382
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013332907110452652
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013489299453794956
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ -
+ โ
Test 19
(params: a=1, b=5, expected=6)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ a: 1
+ b: 5
+ expected: 6
+ id: a=1,b=5,expected=6
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00024176808074116707
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001257229596376419
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00014199083670973778
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ -
+ โ
Test 20
(params: a=3, b=4, expected=7)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ a: 3
+ b: 4
+ expected: 7
+ id: a=3,b=4,expected=7
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00025285803712904453
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012931902892887592
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013254000805318356
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+
+
+ -
+ ๐ test_param.py
+
+ โณ Function: test_basic_ids
+ -
+ โ
Test 41
(params: x=1)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ x: 1
+ id: one
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0002710449043661356
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00015092105604708195
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001268621999770403
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ -
+ โ
Test 42
(params: x=2)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ x: 2
+ id: two
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001794830895960331
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012820097617805004
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012323795817792416
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_with_reason_and_marks
+ -
+ โ
Test 43
(params: x=10)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ x: 10
+ id: ten
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001810300163924694
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012784008868038654
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00011803698725998402
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_multiple_positional_args
+ -
+ โ
Test 45
(params: a=1, b=2)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ a: 1
+ b: 2
+ id: 1-2
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.000236947787925601
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012927898205816746
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013408297672867775
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ -
+ โ
Test 46
(params: a=3, b=4)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ a: 3
+ b: 4
+ id: 3-4
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00022608600556850433
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001266608014702797
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012320210225880146
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_non_literal_with_id
+ -
+ โ
Test 47
(params: data=(object object at 0x7fe4e557c7d0))
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ data:
+ โณ Function: test_timedistance_v1
+ -
+ โ
Test 48
(params: a=2001-12-12 00:00:00, b=2001-12-11 00:00:00, expected=1 day, 0:00:00)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ a: 2001-12-12 00:00:00
+ b: 2001-12-11 00:00:00
+ expected: 1 day, 0:00:00
+ id: a0-b0-expected0
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00025296397507190704
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012605194933712482
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00014653708785772324
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ -
+ โ
Test 49
(params: a=2001-12-11 00:00:00, b=2001-12-12 00:00:00, expected=-1 day, 0:00:00)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ a: 2001-12-11 00:00:00
+ b: 2001-12-12 00:00:00
+ expected: -1 day, 0:00:00
+ id: a1-b1-expected1
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00026221410371363163
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012742099352180958
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.000133465975522995
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_sum_positive
+ -
+ โ
Test 50
(params: x=1, y=2)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ x: 1
+ y: 2
+ id: one
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00021141208708286285
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001249860506504774
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012351106852293015
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ -
+ โ
Test 51
(params: x=3, y=4)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ x: 3
+ y: 4
+ id: two
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00021494505926966667
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012786895968019962
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012217299081385136
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_dynamic
+ -
+ โ
Test 53
(params: val=10)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ val: 10
+ id: ten
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0002031258773058653
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013391789980232716
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00011843699030578136
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ -
+ โ
Test 54
(params: val=20)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ val: 20
+ id: twenty
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001749400980770588
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001242249272763729
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00011219712905585766
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ -
+ โ
Test 55
(params: val=30)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ val: 30
+ id: thirty
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00018349196761846542
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012882915325462818
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001130630262196064
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_element_type
+ -
+ โ
Test 56
(params: element=fire)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ element: fire
+ id: \U0001f525
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00016994192264974117
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012962380424141884
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00011412100866436958
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ -
+ โ
Test 57
(params: element=water)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ element: water
+ id: \U0001f4a7
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00016118120402097702
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012306193821132183
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00010870699770748615
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ -
+ โ
Test 58
(params: element=earth)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ element: earth
+ id: \U0001f30d
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00015518395230174065
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001309509389102459
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00011090096086263657
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_combination
+ -
+ โ
Test 59
(params: y=a, x=1)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ y: a
+ x: 1
+ id: a-1
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00020080292597413063
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001306449994444847
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012210989370942116
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ -
+ โ
Test 60
(params: y=a, x=2)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ y: a
+ x: 2
+ id: a-2
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0002049049362540245
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001269590575248003
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.000125763937830925
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ -
+ โ
Test 61
(params: y=b, x=1)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ y: b
+ x: 1
+ id: b-1
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001976208295673132
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012423284351825714
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.000127855921164155
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ -
+ โ
Test 62
(params: y=b, x=2)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ y: b
+ x: 2
+ id: b-2
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00020208791829645634
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012378999963402748
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013137515634298325
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_indirect_fixture
+ -
+ โ
Test 63
(params: complex_setup=1)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ complex_setup: 1
+ id: 1
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00016164383850991726
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012804497964680195
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00011342903599143028
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ -
+ โ
Test 64
(params: complex_setup=2)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ complex_setup: 2
+ id: 2
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00016286317259073257
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012227008119225502
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00011130701750516891
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+
+
+ -
+ ๐ test_string_utils.py
+
+ โณ Function: test_uppercase_normal
+ -
+ โ
Test 67
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012137484736740589
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001478111371397972
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00010024895891547203
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_reverse_string
+ -
+ โ
Test 69
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00011761300265789032
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00014080386608839035
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 9.911693632602692e-05
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_warning_emit
+ -
+ โ
Test 70
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00011179898865520954
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00014877296052873135
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 9.969901293516159e-05
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_syntax_warning
+ -
+ โ
Test 73
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001194619107991457
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001617218367755413
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00010246597230434418
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_keyboard_interrupt_direct
+ -
+ โ
Test 75
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00011712592095136642
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+
+
+
+
+
+โ Failed (33)
+
+ -
+ ๐ test_io_utils.py
+
+ โณ Function: test_cause_io_error
+ -
+ โ Test 3
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00011289305984973907
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00016151205636560917
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/functions/io_utils.py
+ lineno: 10
+ message: OSError: Forced IO Error for testing
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_io_utils.py
+ lineno: 25
+ message: None
+ - path: functions/io_utils.py
+ lineno: 10
+ message: OSError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001429300755262375
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_file_not_found
+ -
+ โ Test 4
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012631993740797043
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00017893104813992977
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/functions/io_utils.py
+ lineno: 2
+ message: FileNotFoundError: [Errno 2] No such file or directory: 'nonexistent.file'
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_io_utils.py
+ lineno: 29
+ message: None
+ - path: functions/io_utils.py
+ lineno: 2
+ message: FileNotFoundError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013928301632404327
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_permission_error
+ -
+ โ Test 5
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0002248440869152546
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00018275482580065727
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_io_utils.py
+ lineno: 34
+ message: PermissionError: Permission denied
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_io_utils.py
+ lineno: 36
+ message: None
+ - path: functions/io_utils.py
+ lineno: 2
+ message: in read_file
+ - path: tests/test_io_utils.py
+ lineno: 34
+ message: PermissionError
+ ```
+
+ **longrepr:**
+
+ ```python
+ monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fe4e2616af0>
+
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00016953307203948498
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_mock_open_error
+ -
+ โ Test 6
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00020636292174458504
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0033249349799007177
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/unittest/mock.py
+ lineno: 1140
+ message: OSError: Mocked IOError
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_io_utils.py
+ lineno: 43
+ message: None
+ - 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:**
+
+ ```python
+ monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fe4e4b609d0>
+
+ 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 =
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.000313405878841877
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_file_handle_closed_error
+ -
+ โ Test 7
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001538179349154234
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001958401408046484
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_io_utils.py
+ lineno: 50
+ message: ValueError: I/O operation on closed file
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_io_utils.py
+ lineno: 50
+ message: ValueError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00018512201495468616
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_os_error
+ -
+ โ Test 8
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00024126004427671432
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00022352603264153004
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_io_utils.py
+ lineno: 55
+ message: OSError: Simulated OSError
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_io_utils.py
+ lineno: 57
+ message: None
+ - path: tests/test_io_utils.py
+ lineno: 55
+ message: OSError
+ ```
+
+ **longrepr:**
+
+ ```python
+ monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fe4e4a56130>
+
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.000180921982973814
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_file_not_found_error
+ -
+ โ Test 10
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00011498690582811832
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00018516392447054386
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ 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:**
+
+ ```python
+ - path: tests/test_io_utils.py
+ lineno: 70
+ message: FileNotFoundError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013639195822179317
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+
+
+ -
+ ๐ test_math_utils.py
+
+ โณ Function: test_broken
+ -
+ โ Test 11
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013531814329326153
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00015336903743445873
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_math_utils.py
+ lineno: 16
+ message: NameError: name 'want_the_test_to_fail' is not defined
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_math_utils.py
+ lineno: 16
+ message: NameError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001357619185000658
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_call_missing_function
+ -
+ โ Test 12
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00011618714779615402
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00015196599997580051
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ 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:**
+
+ ```python
+ - path: tests/test_math_utils.py
+ lineno: 20
+ message: AttributeError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013581500388681889
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_addition_fail
+ -
+ โ Test 21
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00010879593901336193
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0004584621638059616
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_math_utils.py
+ lineno: 51
+ message: assert 4 == 5
+ + where 4 = addition(2, 2)
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_math_utils.py
+ lineno: 51
+ message: AssertionError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00014171120710670948
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_division_zero
+ -
+ โ Test 22
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00011756992898881435
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00016937893815338612
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/functions/math_utils.py
+ lineno: 5
+ message: ZeroDivisionError: division by zero
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_math_utils.py
+ lineno: 55
+ message: None
+ - path: functions/math_utils.py
+ lineno: 5
+ message: ZeroDivisionError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00014337711036205292
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_runtime_error
+ -
+ โ Test 24
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00011773314327001572
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001638028770685196
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_math_utils.py
+ lineno: 64
+ message: RuntimeError: Forced runtime error
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_math_utils.py
+ lineno: 64
+ message: RuntimeError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013491790741682053
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_memory_error
+ -
+ โ Test 25
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.000116697046905756
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00014961487613618374
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_math_utils.py
+ lineno: 68
+ message: MemoryError: Simulated memory error
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_math_utils.py
+ lineno: 68
+ message: MemoryError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00014125881716609
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_timeout_error
+ -
+ โ Test 26
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012048985809087753
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00015808199532330036
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_math_utils.py
+ lineno: 72
+ message: TimeoutError: Simulated timeout error
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_math_utils.py
+ lineno: 72
+ message: TimeoutError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013959710486233234
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_recursion_error
+ -
+ โ Test 27
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001256088726222515
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0007832208648324013
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_math_utils.py
+ lineno: 77
+ message: RecursionError: maximum recursion depth exceeded
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_math_utils.py
+ lineno: 78
+ message: None
+ - path: tests/test_math_utils.py
+ lineno: 77
+ message: in recursive
+ - path: tests/test_math_utils.py
+ lineno: 77
+ message: in recursive
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00023767701350152493
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_floating_point_error
+ -
+ โ Test 28
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00014870893210172653
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001807732041925192
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_math_utils.py
+ lineno: 82
+ message: FloatingPointError: Simulated floating point error
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_math_utils.py
+ lineno: 82
+ message: FloatingPointError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00019396096467971802
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_floating_point_overflow
+ -
+ โ Test 29
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00016696378588676453
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001955660991370678
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_math_utils.py
+ lineno: 86
+ message: OverflowError: math range error
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_math_utils.py
+ lineno: 86
+ message: OverflowError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00015675905160605907
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_value_error
+ -
+ โ Test 30
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.000126649159938097
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001802078913897276
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_math_utils.py
+ lineno: 90
+ message: ValueError: invalid literal for int() with base 10: 'invalid'
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_math_utils.py
+ lineno: 90
+ message: ValueError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001477380283176899
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_wrong_argument_error
+ -
+ โ Test 31
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012752297334372997
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.000165645033121109
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_math_utils.py
+ lineno: 94
+ message: TypeError: 'int' object is not iterable
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_math_utils.py
+ lineno: 94
+ message: TypeError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00014363601803779602
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_unhandled_exception
+ -
+ โ Test 32
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013963296078145504
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.000164153054356575
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_math_utils.py
+ lineno: 98
+ message: Exception: Generic unhandled exception
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_math_utils.py
+ lineno: 98
+ message: Exception
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001435901504009962
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_custom_error
+ -
+ โ Test 33
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012350897304713726
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001639300025999546
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_math_utils.py
+ lineno: 102
+ message: test_math_utils.CustomError: Custom error simulation
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_math_utils.py
+ lineno: 102
+ message: CustomError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013932213187217712
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_stop_iteration_direct
+ -
+ โ Test 34
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013334909453988075
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.000156317837536335
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py
+ lineno: 880
+ message: RuntimeError: generator raised StopIteration
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: .pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py
+ lineno: 341
+ message: None
+ - path: .pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py
+ lineno: 242
+ message: in
+ - path: .pixi/envs/default/lib/python3.8/site-packages/pluggy/_hooks.py
+ lineno: 513
+ message: in __call__
+ - path: .pixi/envs/default/lib/python3.8/site-packages/pluggy/_manager.py
+ lineno: 120
+ message: in _hookexec
+ - path: .pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py
+ lineno: 92
+ message: in pytest_runtest_call
+ - path: .pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py
+ lineno: 68
+ message: in thread_exception_runtest_hook
+ - path: .pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py
+ lineno: 95
+ message: in pytest_runtest_call
+ - path: .pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py
+ lineno: 70
+ message: in unraisable_exception_runtest_hook
+ - path: .pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py
+ lineno: 846
+ message: in pytest_runtest_call
+ - path: .pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py
+ lineno: 829
+ message: in _runtest_for
+ - path: .pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py
+ lineno: 880
+ message: RuntimeError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 =
+ func = . at 0x7fe4e263e790>
+ when = 'call'
+ reraise = (, )
+
+ @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: 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.py:120: in _hookexec
+ return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
+ .pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py:92: in pytest_runtest_call
+ yield from thread_exception_runtest_hook()
+ .pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py:68: in thread_exception_runtest_hook
+ yield
+ .pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py:95: in pytest_runtest_call
+ yield from unraisable_exception_runtest_hook()
+ .pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py:70: in unraisable_exception_runtest_hook
+ yield
+ .pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py:846: in pytest_runtest_call
+ yield from self._runtest_for(item, "call")
+ .pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py:829: in _runtest_for
+ yield
+ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ self = _capture_fixture=None>
+ item =
+
+ @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.py:880: RuntimeError
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0002864869311451912
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_generator_exit_direct
+ -
+ โ Test 35
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00014689704403281212
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00018528103828430176
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_math_utils.py
+ lineno: 110
+ message: GeneratorExit
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_math_utils.py
+ lineno: 110
+ message: GeneratorExit
+ ```
+
+ **longrepr:**
+
+ ```python
+ def test_generator_exit_direct():
+ # Directly raise GeneratorExit exception
+ > raise GeneratorExit()
+ E GeneratorExit
+
+ tests/test_math_utils.py:110: GeneratorExit
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00020994199439883232
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_malformed_code
+ -
+ โ Test 36
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013714516535401344
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001826849766075611
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_math_utils.py
+ lineno: 114
+ message: File "", line 1
+ def bad(:
+ ^
+ SyntaxError: invalid syntax
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_math_utils.py
+ lineno: 114
+ message: SyntaxError
+ ```
+
+ **longrepr:**
+
+ ```python
+ def test_malformed_code():
+ # SyntaxError when executing malformed Python code
+ > exec("def bad(:\n pass")
+ E File "", line 1
+ E def bad(:
+ E ^
+ E SyntaxError: invalid syntax
+
+ tests/test_math_utils.py:114: SyntaxError
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001661311835050583
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_sys_exit
+ -
+ โ Test 37
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013048900291323662
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00016428297385573387
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_math_utils.py
+ lineno: 118
+ message: SystemExit: 1
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_math_utils.py
+ lineno: 118
+ message: SystemExit
+ ```
+
+ **longrepr:**
+
+ ```python
+ def test_sys_exit():
+ # Simulate SystemExit via sys.exit
+ > sys.exit(1)
+ E SystemExit: 1
+
+ tests/test_math_utils.py:118: SystemExit
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00014870497398078442
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_broken_function
+ -
+ โ Test 38
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013548904098570347
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001607921440154314
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_math_utils.py
+ lineno: 123
+ message: TypeError: Broken function
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_math_utils.py
+ lineno: 124
+ message: None
+ - path: tests/test_math_utils.py
+ lineno: 123
+ message: TypeError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.000142277916893363
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_import_error
+ -
+ โ Test 39
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012082117609679699
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001567548606544733
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_math_utils.py
+ lineno: 128
+ message: ImportError: Simulated ImportError
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_math_utils.py
+ lineno: 128
+ message: ImportError
+ ```
+
+ **longrepr:**
+
+ ```python
+ def test_import_error():
+ # Directly raise ImportError exception
+ > raise ImportError("Simulated ImportError")
+ E ImportError: Simulated ImportError
+
+ tests/test_math_utils.py:128: ImportError
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013832305558025837
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_module_not_found_error
+ -
+ โ Test 40
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012366706505417824
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00047593098133802414
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path:
+ lineno: 973
+ message: ModuleNotFoundError: No module named 'non_existent_module_xyz'
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_math_utils.py
+ lineno: 132
+ message: None
+ - path: .pixi/envs/default/lib/python3.8/importlib/__init__.py
+ lineno: 127
+ message: in import_module
+ - path:
+ lineno: 1014
+ message: in _gcd_import
+ - path:
+ lineno: 991
+ message: in _find_and_load
+ - path:
+ lineno: 973
+ message: ModuleNotFoundError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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[level:], package, level)
+ :1014: in _gcd_import
+ ???
+ :991: in _find_and_load
+ ???
+ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ name = 'non_existent_module_xyz'
+ import_ =
+
+ > ???
+ E ModuleNotFoundError: No module named 'non_existent_module_xyz'
+
+ :973: ModuleNotFoundError
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00019715703092515469
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+
+
+ -
+ ๐ test_param.py
+
+ โณ Function: test_sum_positive
+ -
+ โ Test 52
(params: x=-1, y=-1)
+
+ **_*๐ Runtime Parameters*_**
+
+ ```python
+ params:
+ x: -1
+ y: -1
+ id: edge
+ ```
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0002167790662497282
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0002656050492078066
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_param.py
+ lineno: 58
+ message: assert (-1 + -1) >= 0
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_param.py
+ lineno: 58
+ message: AssertionError
+ ```
+
+ **longrepr:**
+
+ ```python
+ x = -1, y = -1
+
+ @pytest.mark.parametrize("x, y", [(param["x"], param["y"]) for _, param in scenarios], ids=[name for name, _ in scenarios])
+ def test_sum_positive(x, y):
+ > assert (x + y) >= 0
+ E assert (-1 + -1) >= 0
+
+ tests/test_param.py:58: AssertionError
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.000179684953764081
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_addition
+ -
+ โ Test 65
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00010095001198351383
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00015792297199368477
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_param.py
+ lineno: 97
+ message: NameError: name 'addition' is not defined
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_param.py
+ lineno: 97
+ message: NameError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00014517712406814098
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+
+
+ -
+ ๐ test_string_utils.py
+
+ โณ Function: test_uppercase_type_error
+ -
+ โ Test 68
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.000106095802038908
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00015716394409537315
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/functions/string_utils.py
+ lineno: 3
+ message: TypeError: Input cannot be None
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_string_utils.py
+ lineno: 16
+ message: None
+ - path: functions/string_utils.py
+ lineno: 3
+ message: TypeError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013588415458798409
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_unicode_decode_error
+ -
+ โ Test 71
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00011409702710807323
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001466700341552496
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ 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:**
+
+ ```python
+ - path: tests/test_string_utils.py
+ lineno: 28
+ message: UnicodeDecodeError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013504689559340477
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ โณ Function: test_unicode_decode_surrogateescape
+ -
+ โ Test 72
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00012762891128659248
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00015335390344262123
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **crash:**
+
+ ```python
+ 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:**
+
+ ```python
+ - path: tests/test_string_utils.py
+ lineno: 32
+ message: UnicodeDecodeError
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001336880959570408
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+
+
+
+
+
+โ Xfailed (2)
+
+ -
+ ๐ test_math_utils.py
+
+ โณ Function: test_multiply_xfail
+ -
+ โ Test 23
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00014761206693947315
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00030593201518058777
+ ```
+
+ **outcome:**
+
+ ```python
+ skipped
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_math_utils.py
+ lineno: 60
+ message: assert 4 == 5
+ + where 4 = multiply(2, 2)
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_math_utils.py
+ lineno: 60
+ message: AssertionError
+ ```
+
+ **longrepr:**
+
+ ```python
+ @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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00014047999866306782
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+
+
+ -
+ ๐ test_string_utils.py
+
+ โณ Function: test_xfail_uppercase_digits
+ -
+ โ Test 74
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001197748351842165
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+ **_*๐ Call phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0006523651536554098
+ ```
+
+ **outcome:**
+
+ ```python
+ skipped
+ ```
+
+ **crash:**
+
+ ```python
+ path: /workspace/tligui_y/slic/tests/test_string_utils.py
+ lineno: 41
+ message: AssertionError: assert 'ABC123' == 'ABC1234'
+
+ - ABC1234
+ ? -
+ + ABC123
+ ```
+
+ **traceback:**
+
+ ```python
+ - path: tests/test_string_utils.py
+ lineno: 41
+ message: AssertionError
+ ```
+
+ **longrepr:**
+
+ ```python
+ @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 phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00013429392129182816
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+
+
+
+
+
+โ Skipped (1)
+
+ -
+ ๐ test_param.py
+
+ โณ Function: test_with_reason_and_marks
+ -
+ โ Test 44
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00026119197718799114
+ ```
+
+ **outcome:**
+
+ ```python
+ skipped
+ ```
+
+ **longrepr:**
+
+ ```python
+ ('/workspace/tligui_y/slic/tests/test_param.py', 12, 'Skipped: nope')
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00011255498975515366
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+
+
+
+
+
+โ Error (1)
+
+ -
+ ๐ test_param.py
+
+ โณ Function: test_basic_error
+ -
+ โ Test 66
+
+ **_*๐ Setup phase*_**
+
+ **duration:**
+
+ ```python
+ 0.00015376601368188858
+ ```
+
+ **outcome:**
+
+ ```python
+ failed
+ ```
+
+ **longrepr:**
+
+ ```python
+ 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 [testpath]' for help on them.
+
+ /workspace/tligui_y/slic/tests/test_param.py:100
+ ```
+
+ **_*๐ Teardown phase*_**
+
+ **duration:**
+
+ ```python
+ 0.0001266880426555872
+ ```
+
+ **outcome:**
+
+ ```python
+ passed
+ ```
+
+
+
+
+
## ๐ Collected files
@@ -72,7 +5654,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
โ
- **Outcome:** `passed`
- - **children:**
+ - **result:**
```python
- nodeid: .
@@ -88,7 +5670,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
โ
ci-reports
- **Outcome:** `passed`
- - **children:**
+ - **result:**
```python
- nodeid: ci-reports/allure
@@ -104,7 +5686,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
โ
ci-reports/allure
- **Outcome:** `passed`
- - **children:**
+ - **result:**
```python
- nodeid: ci-reports/allure/data
@@ -124,7 +5706,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
โ
ci-reports/allure/data
- **Outcome:** `passed`
- - **children:**
+ - **result:**
```python
[]
@@ -135,7 +5717,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
โ
ci-reports/allure/export
- **Outcome:** `passed`
- - **children:**
+ - **result:**
```python
[]
@@ -146,7 +5728,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
โ
ci-reports/allure/history
- **Outcome:** `passed`
- - **children:**
+ - **result:**
```python
[]
@@ -157,7 +5739,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
โ
ci-reports/allure/plugin
- **Outcome:** `passed`
- - **children:**
+ - **result:**
```python
- nodeid: ci-reports/allure/plugin/behaviors
@@ -173,7 +5755,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
โ
ci-reports/allure/plugin/behaviors
- **Outcome:** `passed`
- - **children:**
+ - **result:**
```python
[]
@@ -184,7 +5766,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
โ
ci-reports/allure/plugin/packages
- **Outcome:** `passed`
- - **children:**
+ - **result:**
```python
[]
@@ -195,7 +5777,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
โ
ci-reports/allure/plugin/screen-diff
- **Outcome:** `passed`
- - **children:**
+ - **result:**
```python
[]
@@ -206,7 +5788,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
โ
ci-reports/allure/widgets
- **Outcome:** `passed`
- - **children:**
+ - **result:**
```python
[]
@@ -217,7 +5799,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
โ
ci-reports/coverage
- **Outcome:** `passed`
- - **children:**
+ - **result:**
```python
[]
@@ -228,7 +5810,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
โ
ci-reports/markdown
- **Outcome:** `passed`
- - **children:**
+ - **result:**
```python
[]
@@ -243,7 +5825,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
โ
functions
- **Outcome:** `passed`
- - **children:**
+ - **result:**
```python
[]
@@ -258,7 +5840,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
โ
tests
- **Outcome:** `passed`
- - **children:**
+ - **result:**
```python
- nodeid: tests/test_broken_fct.py
@@ -280,7 +5862,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
โ tests/test_broken_fct.py
- **Outcome:** `failed`
- - **children:**
+ - **result:**
```python
[]
@@ -320,7 +5902,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
โ tests/test_collector_error.py
- **Outcome:** `failed`
- - **children:**
+ - **result:**
```python
[]
@@ -344,59 +5926,39 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
โ
tests/test_io_utils.py
- **Outcome:** `passed`
- - **children:**
+ - **result:**
```python
- nodeid: tests/test_io_utils.py::test_write_file
type: Function
- path: tests/test_io_utils.py
lineno: 9
- domain: test_write_file
- nodeid: tests/test_io_utils.py::test_read_file
type: Function
- path: tests/test_io_utils.py
lineno: 15
- domain: test_read_file
- nodeid: tests/test_io_utils.py::test_cause_io_error
type: Function
- path: tests/test_io_utils.py
lineno: 22
- domain: test_cause_io_error
- nodeid: tests/test_io_utils.py::test_file_not_found
type: Function
- path: tests/test_io_utils.py
lineno: 26
- domain: test_file_not_found
- nodeid: tests/test_io_utils.py::test_permission_error
type: Function
- path: tests/test_io_utils.py
lineno: 30
- domain: test_permission_error
- nodeid: tests/test_io_utils.py::test_mock_open_error
type: Function
- path: tests/test_io_utils.py
lineno: 37
- domain: test_mock_open_error
- nodeid: tests/test_io_utils.py::test_file_handle_closed_error
type: Function
- path: tests/test_io_utils.py
lineno: 45
- domain: test_file_handle_closed_error
- nodeid: tests/test_io_utils.py::test_os_error
type: Function
- path: tests/test_io_utils.py
lineno: 51
- domain: test_os_error
- nodeid: tests/test_io_utils.py::test_write_file_in_readonly_mode
type: Function
- path: tests/test_io_utils.py
lineno: 58
- domain: test_write_file_in_readonly_mode
- nodeid: tests/test_io_utils.py::test_file_not_found_error
type: Function
- path: tests/test_io_utils.py
lineno: 67
- domain: test_file_not_found_error
```
@@ -404,159 +5966,99 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
โ
tests/test_math_utils.py
- **Outcome:** `passed`
- - **children:**
+ - **result:**
```python
- nodeid: tests/test_math_utils.py::test_broken
type: Function
- path: tests/test_math_utils.py
lineno: 13
- domain: test_broken
- nodeid: tests/test_math_utils.py::test_call_missing_function
type: Function
- path: tests/test_math_utils.py
lineno: 17
- domain: test_call_missing_function
- nodeid: tests/test_math_utils.py::test_addition_pass[2-2-4]
type: Function
- path: tests/test_math_utils.py
lineno: 22
- domain: test_addition_pass[2-2-4]
- nodeid: tests/test_math_utils.py::test_addition_pass[1-5-6]
type: Function
- path: tests/test_math_utils.py
lineno: 22
- domain: test_addition_pass[1-5-6]
- nodeid: tests/test_math_utils.py::test_addition_pass[3-4-7]
type: Function
- path: tests/test_math_utils.py
lineno: 22
- domain: test_addition_pass[3-4-7]
- nodeid: tests/test_math_utils.py::test_addition_pass[3-5-8]
type: Function
- path: tests/test_math_utils.py
lineno: 22
- domain: test_addition_pass[3-5-8]
- nodeid: tests/test_math_utils.py::test_addition_pass[3-6-9]
type: Function
- path: tests/test_math_utils.py
lineno: 22
- domain: test_addition_pass[3-6-9]
- nodeid: tests/test_math_utils.py::test_addition_pass_id[a=2,b=2,expected=4]
type: Function
- path: tests/test_math_utils.py
lineno: 36
- domain: test_addition_pass_id[a=2,b=2,expected=4]
- nodeid: tests/test_math_utils.py::test_addition_pass_id[a=1,b=5,expected=6]
type: Function
- path: tests/test_math_utils.py
lineno: 36
- domain: test_addition_pass_id[a=1,b=5,expected=6]
- nodeid: tests/test_math_utils.py::test_addition_pass_id[a=3,b=4,expected=7]
type: Function
- path: tests/test_math_utils.py
lineno: 36
- domain: test_addition_pass_id[a=3,b=4,expected=7]
- nodeid: tests/test_math_utils.py::test_addition_fail
type: Function
- path: tests/test_math_utils.py
lineno: 48
- domain: test_addition_fail
- nodeid: tests/test_math_utils.py::test_division_zero
type: Function
- path: tests/test_math_utils.py
lineno: 52
- domain: test_division_zero
- nodeid: tests/test_math_utils.py::test_multiply_xfail
type: Function
- path: tests/test_math_utils.py
lineno: 56
- domain: test_multiply_xfail
- nodeid: tests/test_math_utils.py::test_runtime_error
type: Function
- path: tests/test_math_utils.py
lineno: 61
- domain: test_runtime_error
- nodeid: tests/test_math_utils.py::test_memory_error
type: Function
- path: tests/test_math_utils.py
lineno: 65
- domain: test_memory_error
- nodeid: tests/test_math_utils.py::test_timeout_error
type: Function
- path: tests/test_math_utils.py
lineno: 69
- domain: test_timeout_error
- nodeid: tests/test_math_utils.py::test_recursion_error
type: Function
- path: tests/test_math_utils.py
lineno: 73
- domain: test_recursion_error
- nodeid: tests/test_math_utils.py::test_floating_point_error
type: Function
- path: tests/test_math_utils.py
lineno: 79
- domain: test_floating_point_error
- nodeid: tests/test_math_utils.py::test_floating_point_overflow
type: Function
- path: tests/test_math_utils.py
lineno: 83
- domain: test_floating_point_overflow
- nodeid: tests/test_math_utils.py::test_value_error
type: Function
- path: tests/test_math_utils.py
lineno: 87
- domain: test_value_error
- nodeid: tests/test_math_utils.py::test_wrong_argument_error
type: Function
- path: tests/test_math_utils.py
lineno: 91
- domain: test_wrong_argument_error
- nodeid: tests/test_math_utils.py::test_unhandled_exception
type: Function
- path: tests/test_math_utils.py
lineno: 95
- domain: test_unhandled_exception
- nodeid: tests/test_math_utils.py::test_custom_error
type: Function
- path: tests/test_math_utils.py
lineno: 99
- domain: test_custom_error
- nodeid: tests/test_math_utils.py::test_stop_iteration_direct
type: Function
- path: tests/test_math_utils.py
lineno: 103
- domain: test_stop_iteration_direct
- nodeid: tests/test_math_utils.py::test_generator_exit_direct
type: Function
- path: tests/test_math_utils.py
lineno: 107
- domain: test_generator_exit_direct
- nodeid: tests/test_math_utils.py::test_malformed_code
type: Function
- path: tests/test_math_utils.py
lineno: 111
- domain: test_malformed_code
- nodeid: tests/test_math_utils.py::test_sys_exit
type: Function
- path: tests/test_math_utils.py
lineno: 115
- domain: test_sys_exit
- nodeid: tests/test_math_utils.py::test_broken_function
type: Function
- path: tests/test_math_utils.py
lineno: 119
- domain: test_broken_function
- nodeid: tests/test_math_utils.py::test_import_error
type: Function
- path: tests/test_math_utils.py
lineno: 125
- domain: test_import_error
- nodeid: tests/test_math_utils.py::test_module_not_found_error
type: Function
- path: tests/test_math_utils.py
lineno: 129
- domain: test_module_not_found_error
```
@@ -564,139 +6066,87 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
โ
tests/test_param.py
- **Outcome:** `passed`
- - **children:**
+ - **result:**
```python
- nodeid: tests/test_param.py::test_basic_ids[one]
type: Function
- path: tests/test_param.py
lineno: 3
- domain: test_basic_ids[one]
- nodeid: tests/test_param.py::test_basic_ids[two]
type: Function
- path: tests/test_param.py
lineno: 3
- domain: test_basic_ids[two]
- nodeid: tests/test_param.py::test_with_reason_and_marks[ten]
type: Function
- path: tests/test_param.py
lineno: 11
- domain: test_with_reason_and_marks[ten]
- nodeid: tests/test_param.py::test_with_reason_and_marks[twenty]
type: Function
- path: tests/test_param.py
lineno: 11
- domain: test_with_reason_and_marks[twenty]
- nodeid: tests/test_param.py::test_multiple_positional_args[1-2]
type: Function
- path: tests/test_param.py
lineno: 19
- domain: test_multiple_positional_args[1-2]
- nodeid: tests/test_param.py::test_multiple_positional_args[3-4]
type: Function
- path: tests/test_param.py
lineno: 19
- domain: test_multiple_positional_args[3-4]
- nodeid: tests/test_param.py::test_non_literal_with_id[custom-obj]
type: Function
- path: tests/test_param.py
lineno: 27
- domain: test_non_literal_with_id[custom-obj]
- nodeid: tests/test_param.py::test_timedistance_v1[a0-b0-expected0]
type: Function
- path: tests/test_param.py
lineno: 43
- domain: test_timedistance_v1[a0-b0-expected0]
- nodeid: tests/test_param.py::test_timedistance_v1[a1-b1-expected1]
type: Function
- path: tests/test_param.py
lineno: 43
- domain: test_timedistance_v1[a1-b1-expected1]
- nodeid: tests/test_param.py::test_sum_positive[one]
type: Function
- path: tests/test_param.py
lineno: 55
- domain: test_sum_positive[one]
- nodeid: tests/test_param.py::test_sum_positive[two]
type: Function
- path: tests/test_param.py
lineno: 55
- domain: test_sum_positive[two]
- nodeid: tests/test_param.py::test_sum_positive[edge]
type: Function
- path: tests/test_param.py
lineno: 55
- domain: test_sum_positive[edge]
- nodeid: tests/test_param.py::test_dynamic[ten]
type: Function
- path: tests/test_param.py
lineno: 65
- domain: test_dynamic[ten]
- nodeid: tests/test_param.py::test_dynamic[twenty]
type: Function
- path: tests/test_param.py
lineno: 65
- domain: test_dynamic[twenty]
- nodeid: tests/test_param.py::test_dynamic[thirty]
type: Function
- path: tests/test_param.py
lineno: 65
- domain: test_dynamic[thirty]
- nodeid: tests/test_param.py::test_element_type[\U0001f525]
type: Function
- path: tests/test_param.py
lineno: 74
- domain: test_element_type[\U0001f525]
- nodeid: tests/test_param.py::test_element_type[\U0001f4a7]
type: Function
- path: tests/test_param.py
lineno: 74
- domain: test_element_type[\U0001f4a7]
- nodeid: tests/test_param.py::test_element_type[\U0001f30d]
type: Function
- path: tests/test_param.py
lineno: 74
- domain: test_element_type[\U0001f30d]
- nodeid: tests/test_param.py::test_combination[a-1]
type: Function
- path: tests/test_param.py
lineno: 78
- domain: test_combination[a-1]
- nodeid: tests/test_param.py::test_combination[a-2]
type: Function
- path: tests/test_param.py
lineno: 78
- domain: test_combination[a-2]
- nodeid: tests/test_param.py::test_combination[b-1]
type: Function
- path: tests/test_param.py
lineno: 78
- domain: test_combination[b-1]
- nodeid: tests/test_param.py::test_combination[b-2]
type: Function
- path: tests/test_param.py
lineno: 78
- domain: test_combination[b-2]
- nodeid: tests/test_param.py::test_indirect_fixture[1]
type: Function
- path: tests/test_param.py
lineno: 89
- domain: test_indirect_fixture[1]
- nodeid: tests/test_param.py::test_indirect_fixture[2]
type: Function
- path: tests/test_param.py
lineno: 89
- domain: test_indirect_fixture[2]
- nodeid: tests/test_param.py::test_addition
type: Function
- path: tests/test_param.py
lineno: 94
- domain: test_addition
- nodeid: tests/test_param.py::test_basic_error
type: Function
- path: tests/test_param.py
lineno: 99
- domain: test_basic_error
```
@@ -704,54 +6154,36 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
โ
tests/test_string_utils.py
- **Outcome:** `passed`
- - **children:**
+ - **result:**
```python
- nodeid: tests/test_string_utils.py::test_uppercase_normal
type: Function
- path: tests/test_string_utils.py
lineno: 9
- domain: test_uppercase_normal
- nodeid: tests/test_string_utils.py::test_uppercase_type_error
type: Function
- path: tests/test_string_utils.py
lineno: 13
- domain: test_uppercase_type_error
- nodeid: tests/test_string_utils.py::test_reverse_string
type: Function
- path: tests/test_string_utils.py
lineno: 17
- domain: test_reverse_string
- nodeid: tests/test_string_utils.py::test_warning_emit
type: Function
- path: tests/test_string_utils.py
lineno: 21
- domain: test_warning_emit
- nodeid: tests/test_string_utils.py::test_unicode_decode_error
type: Function
- path: tests/test_string_utils.py
lineno: 25
- domain: test_unicode_decode_error
- nodeid: tests/test_string_utils.py::test_unicode_decode_surrogateescape
type: Function
- path: tests/test_string_utils.py
lineno: 29
- domain: test_unicode_decode_surrogateescape
- nodeid: tests/test_string_utils.py::test_syntax_warning
type: Function
- path: tests/test_string_utils.py
lineno: 33
- domain: test_syntax_warning
- nodeid: tests/test_string_utils.py::test_xfail_uppercase_digits
type: Function
- path: tests/test_string_utils.py
lineno: 37
- domain: test_xfail_uppercase_digits
- nodeid: tests/test_string_utils.py::test_keyboard_interrupt_direct
type: Function
- path: tests/test_string_utils.py
lineno: 48
- domain: test_keyboard_interrupt_direct
```
@@ -763,7 +6195,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
โ
.
- **Outcome:** `passed`
- - **children:**
+ - **result:**
```python
- nodeid: ci-reports
@@ -776,3 +6208,35 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni
+## โ ๏ธ Warnings
+
+
+
+Warnings #1
+
+```
+message: Test warning
+category: UserWarning
+when: runtest
+filename: /workspace/tligui_y/slic/tests/test_string_utils.py
+lineno: 24
+```
+
+
+
+
+
+
+Warnings #2
+
+```
+message: This is a syntax warning
+category: SyntaxWarning
+when: runtest
+filename: /workspace/tligui_y/slic/tests/test_string_utils.py
+lineno: 36
+```
+
+
+
+
diff --git a/ci-reports/markdown/coverage-summary.md b/ci-reports/markdown/coverage-summary.md
index 2f4acdf8..ff0891a9 100644
--- a/ci-reports/markdown/coverage-summary.md
+++ b/ci-reports/markdown/coverage-summary.md
@@ -1 +1,7 @@
-No data to report.
+| Name | Stmts | Miss | Cover |
+|--------------------------- | -------: | -------: | -------: |
+| functions/\_\_init\_\_.py | 0 | 0 | 100% |
+| functions/io\_utils.py | 8 | 0 | 100% |
+| functions/math\_utils.py | 6 | 0 | 100% |
+| functions/string\_utils.py | 6 | 0 | 100% |
+| **TOTAL** | **20** | **0** | **100%** |
diff --git a/ci-reports/markdown/json-tree-view.txt b/ci-reports/markdown/json-tree-view.txt
index 8a93ef15..73539efe 100644
--- a/ci-reports/markdown/json-tree-view.txt
+++ b/ci-reports/markdown/json-tree-view.txt
@@ -1,47 +1,53 @@
๐ ci-reports/markdown/pytest-report.json
-โโโ created: 1753085551.0529785
-โโโ duration: 0.1884441375732422
-โโโ exitcode: 3
+โโโ created: 1753086150.742535
+โโโ duration: 0.8041284084320068
+โโโ exitcode: 2
โโโ root: /workspace/tligui_y/slic
โโโ environment
โโโ summary
-โ โโโ total: 0
+โ โโโ passed: 38
+โ โโโ failed: 33
+โ โโโ xfailed: 2
+โ โโโ skipped: 1
+โ โโโ error: 1
+โ โโโ total: 75
+โ โโโ collected: 75
โโโ collectors
โ โโโ -
โ โ โโโ nodeid:
โ โ โโโ outcome: passed
-โ โ โโโ children
+โ โ โโโ result
โ โ โโโ -
โ โ โโโ nodeid: .
โ โ โโโ type: Dir
โ โโโ -
โ โ โโโ nodeid: ci-reports/allure/data
โ โ โโโ outcome: passed
-โ โ โโโ children
+โ โ โโโ result
โ โโโ -
โ โ โโโ nodeid: ci-reports/allure/export
โ โ โโโ outcome: passed
-โ โ โโโ children
+โ โ โโโ result
โ โโโ -
โ โ โโโ nodeid: ci-reports/allure/history
โ โ โโโ outcome: passed
-โ โ โโโ children
+โ โ โโโ result
โ โโโ -
โ โ โโโ nodeid: ci-reports/allure/plugin/behaviors
โ โ โโโ outcome: passed
-โ โ โโโ children
+โ โ โโโ result
โ โโโ -
โ โ โโโ nodeid: ci-reports/allure/plugin/packages
โ โ โโโ outcome: passed
-โ โ โโโ children
+โ โ โโโ result
โ โโโ -
โ โ โโโ nodeid: ci-reports/allure/plugin/screen-diff
โ โ โโโ outcome: passed
-โ โ โโโ children
+โ โ โโโ result
โ โโโ -
โ โ โโโ nodeid: ci-reports/allure/plugin
โ โ โโโ outcome: passed
-โ โ โโโ children
+โ โ โโโ result
โ โ โโโ -
โ โ โ โโโ nodeid: ci-reports/allure/plugin/behaviors
โ โ โ โโโ type: Dir
@@ -54,11 +60,11 @@
โ โโโ -
โ โ โโโ nodeid: ci-reports/allure/widgets
โ โ โโโ outcome: passed
-โ โ โโโ children
+โ โ โโโ result
โ โโโ -
โ โ โโโ nodeid: ci-reports/allure
โ โ โโโ outcome: passed
-โ โ โโโ children
+โ โ โโโ result
โ โ โโโ -
โ โ โ โโโ nodeid: ci-reports/allure/data
โ โ โ โโโ type: Dir
@@ -77,15 +83,15 @@
โ โโโ -
โ โ โโโ nodeid: ci-reports/coverage
โ โ โโโ outcome: passed
-โ โ โโโ children
+โ โ โโโ result
โ โโโ -
โ โ โโโ nodeid: ci-reports/markdown
โ โ โโโ outcome: passed
-โ โ โโโ children
+โ โ โโโ result
โ โโโ -
โ โ โโโ nodeid: ci-reports
โ โ โโโ outcome: passed
-โ โ โโโ children
+โ โ โโโ result
โ โ โโโ -
โ โ โ โโโ nodeid: ci-reports/allure
โ โ โ โโโ type: Dir
@@ -98,11 +104,11 @@
โ โโโ -
โ โ โโโ nodeid: functions
โ โ โโโ outcome: passed
-โ โ โโโ children
+โ โ โโโ result
โ โโโ -
โ โ โโโ nodeid: tests/test_broken_fct.py
โ โ โโโ outcome: failed
-โ โ โโโ children
+โ โ โโโ result
โ โ โโโ longrepr:
โ โ .pixi/envs/default/lib/python3.8/site-packages/_pytest/python.py:493
โ โ : in importtestmodule
@@ -137,7 +143,7 @@
โ โโโ -
โ โ โโโ nodeid: tests/test_collector_error.py
โ โ โโโ outcome: failed
-โ โ โโโ children
+โ โ โโโ 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.
@@ -151,485 +157,335 @@
โ โโโ -
โ โ โโโ nodeid: tests/test_io_utils.py
โ โ โโโ outcome: passed
-โ โ โโโ children
+โ โ โโโ result
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_io_utils.py::test_write_file
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_io_utils.py
-โ โ โ โโโ lineno: 9
-โ โ โ โโโ domain: test_write_file
+โ โ โ โโโ lineno: 9
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_io_utils.py::test_read_file
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_io_utils.py
-โ โ โ โโโ lineno: 15
-โ โ โ โโโ domain: test_read_file
+โ โ โ โโโ lineno: 15
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_io_utils.py::test_cause_io_error
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_io_utils.py
-โ โ โ โโโ lineno: 22
-โ โ โ โโโ domain: test_cause_io_error
+โ โ โ โโโ lineno: 22
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_io_utils.py::test_file_not_found
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_io_utils.py
-โ โ โ โโโ lineno: 26
-โ โ โ โโโ domain: test_file_not_found
+โ โ โ โโโ lineno: 26
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_io_utils.py::test_permission_error
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_io_utils.py
-โ โ โ โโโ lineno: 30
-โ โ โ โโโ domain: test_permission_error
+โ โ โ โโโ lineno: 30
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_io_utils.py::test_mock_open_error
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_io_utils.py
-โ โ โ โโโ lineno: 37
-โ โ โ โโโ domain: test_mock_open_error
+โ โ โ โโโ lineno: 37
โ โ โโโ -
โ โ โ โโโ nodeid:
โ โ โ โ tests/test_io_utils.py::test_file_handle_closed_error
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_io_utils.py
-โ โ โ โโโ lineno: 45
-โ โ โ โโโ domain: test_file_handle_closed_error
+โ โ โ โโโ lineno: 45
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_io_utils.py::test_os_error
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_io_utils.py
-โ โ โ โโโ lineno: 51
-โ โ โ โโโ domain: test_os_error
+โ โ โ โโโ lineno: 51
โ โ โโโ -
โ โ โ โโโ nodeid:
โ โ โ โ tests/test_io_utils.py::test_write_file_in_readonly_mode
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_io_utils.py
-โ โ โ โโโ lineno: 58
-โ โ โ โโโ domain: test_write_file_in_readonly_mode
+โ โ โ โโโ lineno: 58
โ โ โโโ -
โ โ โโโ nodeid: tests/test_io_utils.py::test_file_not_found_error
โ โ โโโ type: Function
-โ โ โโโ path: tests/test_io_utils.py
-โ โ โโโ lineno: 67
-โ โ โโโ domain: test_file_not_found_error
+โ โ โโโ lineno: 67
โ โโโ -
โ โ โโโ nodeid: tests/test_math_utils.py
โ โ โโโ outcome: passed
-โ โ โโโ children
+โ โ โโโ result
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_broken
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 13
-โ โ โ โโโ domain: test_broken
+โ โ โ โโโ lineno: 13
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_call_missing_function
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 17
-โ โ โ โโโ domain: test_call_missing_function
+โ โ โ โโโ lineno: 17
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_addition_pass[2-2-4]
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 22
-โ โ โ โโโ domain: test_addition_pass[2-2-4]
+โ โ โ โโโ lineno: 22
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_addition_pass[1-5-6]
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 22
-โ โ โ โโโ domain: test_addition_pass[1-5-6]
+โ โ โ โโโ lineno: 22
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_addition_pass[3-4-7]
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 22
-โ โ โ โโโ domain: test_addition_pass[3-4-7]
+โ โ โ โโโ lineno: 22
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_addition_pass[3-5-8]
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 22
-โ โ โ โโโ domain: test_addition_pass[3-5-8]
+โ โ โ โโโ lineno: 22
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_addition_pass[3-6-9]
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 22
-โ โ โ โโโ domain: test_addition_pass[3-6-9]
+โ โ โ โโโ lineno: 22
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_addition_pass_id
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 36
-โ โ โ โโโ domain: test_addition_pass_id
+โ โ โ โโโ lineno: 36
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_addition_pass_id
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 36
-โ โ โ โโโ domain: test_addition_pass_id
+โ โ โ โโโ lineno: 36
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_addition_pass_id
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 36
-โ โ โ โโโ domain: test_addition_pass_id
+โ โ โ โโโ lineno: 36
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_addition_fail
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 48
-โ โ โ โโโ domain: test_addition_fail
+โ โ โ โโโ lineno: 48
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_division_zero
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 52
-โ โ โ โโโ domain: test_division_zero
+โ โ โ โโโ lineno: 52
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_multiply_xfail
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 56
-โ โ โ โโโ domain: test_multiply_xfail
+โ โ โ โโโ lineno: 56
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_runtime_error
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 61
-โ โ โ โโโ domain: test_runtime_error
+โ โ โ โโโ lineno: 61
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_memory_error
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 65
-โ โ โ โโโ domain: test_memory_error
+โ โ โ โโโ lineno: 65
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_timeout_error
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 69
-โ โ โ โโโ domain: test_timeout_error
+โ โ โ โโโ lineno: 69
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_recursion_error
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 73
-โ โ โ โโโ domain: test_recursion_error
+โ โ โ โโโ lineno: 73
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_floating_point_error
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 79
-โ โ โ โโโ domain: test_floating_point_error
+โ โ โ โโโ lineno: 79
โ โ โโโ -
โ โ โ โโโ nodeid:
โ โ โ โ tests/test_math_utils.py::test_floating_point_overflow
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 83
-โ โ โ โโโ domain: test_floating_point_overflow
+โ โ โ โโโ lineno: 83
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_value_error
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 87
-โ โ โ โโโ domain: test_value_error
+โ โ โ โโโ lineno: 87
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_wrong_argument_error
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 91
-โ โ โ โโโ domain: test_wrong_argument_error
+โ โ โ โโโ lineno: 91
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_unhandled_exception
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 95
-โ โ โ โโโ domain: test_unhandled_exception
+โ โ โ โโโ lineno: 95
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_custom_error
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 99
-โ โ โ โโโ domain: test_custom_error
+โ โ โ โโโ lineno: 99
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_stop_iteration_direct
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 103
-โ โ โ โโโ domain: test_stop_iteration_direct
+โ โ โ โโโ lineno: 103
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_generator_exit_direct
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 107
-โ โ โ โโโ domain: test_generator_exit_direct
+โ โ โ โโโ lineno: 107
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_malformed_code
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 111
-โ โ โ โโโ domain: test_malformed_code
+โ โ โ โโโ lineno: 111
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_sys_exit
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 115
-โ โ โ โโโ domain: test_sys_exit
+โ โ โ โโโ lineno: 115
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_broken_function
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 119
-โ โ โ โโโ domain: test_broken_function
+โ โ โ โโโ lineno: 119
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_math_utils.py::test_import_error
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_math_utils.py
-โ โ โ โโโ lineno: 125
-โ โ โ โโโ domain: test_import_error
+โ โ โ โโโ lineno: 125
โ โ โโโ -
โ โ โโโ nodeid:
โ โ โ tests/test_math_utils.py::test_module_not_found_error
โ โ โโโ type: Function
-โ โ โโโ path: tests/test_math_utils.py
-โ โ โโโ lineno: 129
-โ โ โโโ domain: test_module_not_found_error
+โ โ โโโ lineno: 129
โ โโโ -
โ โ โโโ nodeid: tests/test_param.py
โ โ โโโ outcome: passed
-โ โ โโโ children
+โ โ โโโ result
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_basic_ids
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 3
-โ โ โ โโโ domain: test_basic_ids
+โ โ โ โโโ lineno: 3
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_basic_ids
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 3
-โ โ โ โโโ domain: test_basic_ids
+โ โ โ โโโ lineno: 3
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_with_reason_and_marks
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 11
-โ โ โ โโโ domain: test_with_reason_and_marks
+โ โ โ โโโ lineno: 11
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_with_reason_and_marks
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 11
-โ โ โ โโโ domain: test_with_reason_and_marks
+โ โ โ โโโ lineno: 11
โ โ โโโ -
โ โ โ โโโ nodeid:
โ โ โ โ tests/test_param.py::test_multiple_positional_args[1-2]
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 19
-โ โ โ โโโ domain: test_multiple_positional_args[1-2]
+โ โ โ โโโ lineno: 19
โ โ โโโ -
โ โ โ โโโ nodeid:
โ โ โ โ tests/test_param.py::test_multiple_positional_args[3-4]
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 19
-โ โ โ โโโ domain: test_multiple_positional_args[3-4]
+โ โ โ โโโ lineno: 19
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_non_literal_with_id
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 27
-โ โ โ โโโ domain: test_non_literal_with_id
+โ โ โ โโโ lineno: 27
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_timedistance_v1
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 43
-โ โ โ โโโ domain: test_timedistance_v1
+โ โ โ โโโ lineno: 43
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_timedistance_v1
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 43
-โ โ โ โโโ domain: test_timedistance_v1
+โ โ โ โโโ lineno: 43
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_sum_positive
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 55
-โ โ โ โโโ domain: test_sum_positive
+โ โ โ โโโ lineno: 55
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_sum_positive
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 55
-โ โ โ โโโ domain: test_sum_positive
+โ โ โ โโโ lineno: 55
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_sum_positive
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 55
-โ โ โ โโโ domain: test_sum_positive
+โ โ โ โโโ lineno: 55
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_dynamic
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 65
-โ โ โ โโโ domain: test_dynamic
+โ โ โ โโโ lineno: 65
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_dynamic
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 65
-โ โ โ โโโ domain: test_dynamic
+โ โ โ โโโ lineno: 65
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_dynamic
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 65
-โ โ โ โโโ domain: test_dynamic
+โ โ โ โโโ lineno: 65
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_element_type[\U0001f525]
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 74
-โ โ โ โโโ domain: test_element_type[\U0001f525]
+โ โ โ โโโ lineno: 74
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_element_type[\U0001f4a7]
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 74
-โ โ โ โโโ domain: test_element_type[\U0001f4a7]
+โ โ โ โโโ lineno: 74
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_element_type[\U0001f30d]
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 74
-โ โ โ โโโ domain: test_element_type[\U0001f30d]
+โ โ โ โโโ lineno: 74
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_combination
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 78
-โ โ โ โโโ domain: test_combination
+โ โ โ โโโ lineno: 78
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_combination
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 78
-โ โ โ โโโ domain: test_combination
+โ โ โ โโโ lineno: 78
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_combination
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 78
-โ โ โ โโโ domain: test_combination
+โ โ โ โโโ lineno: 78
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_combination
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 78
-โ โ โ โโโ domain: test_combination
+โ โ โ โโโ lineno: 78
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_indirect_fixture[1]
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 89
-โ โ โ โโโ domain: test_indirect_fixture[1]
+โ โ โ โโโ lineno: 89
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_indirect_fixture[2]
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 89
-โ โ โ โโโ domain: test_indirect_fixture[2]
+โ โ โ โโโ lineno: 89
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_param.py::test_addition
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_param.py
-โ โ โ โโโ lineno: 94
-โ โ โ โโโ domain: test_addition
+โ โ โ โโโ lineno: 94
โ โ โโโ -
โ โ โโโ nodeid: tests/test_param.py::test_basic_error
โ โ โโโ type: Function
-โ โ โโโ path: tests/test_param.py
-โ โ โโโ lineno: 99
-โ โ โโโ domain: test_basic_error
+โ โ โโโ lineno: 99
โ โโโ -
โ โ โโโ nodeid: tests/test_string_utils.py
โ โ โโโ outcome: passed
-โ โ โโโ children
+โ โ โโโ result
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_string_utils.py::test_uppercase_normal
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_string_utils.py
-โ โ โ โโโ lineno: 9
-โ โ โ โโโ domain: test_uppercase_normal
+โ โ โ โโโ lineno: 9
โ โ โโโ -
โ โ โ โโโ nodeid:
โ โ โ โ tests/test_string_utils.py::test_uppercase_type_error
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_string_utils.py
-โ โ โ โโโ lineno: 13
-โ โ โ โโโ domain: test_uppercase_type_error
+โ โ โ โโโ lineno: 13
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_string_utils.py::test_reverse_string
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_string_utils.py
-โ โ โ โโโ lineno: 17
-โ โ โ โโโ domain: test_reverse_string
+โ โ โ โโโ lineno: 17
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_string_utils.py::test_warning_emit
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_string_utils.py
-โ โ โ โโโ lineno: 21
-โ โ โ โโโ domain: test_warning_emit
+โ โ โ โโโ lineno: 21
โ โ โโโ -
โ โ โ โโโ nodeid:
โ โ โ โ tests/test_string_utils.py::test_unicode_decode_error
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_string_utils.py
-โ โ โ โโโ lineno: 25
-โ โ โ โโโ domain: test_unicode_decode_error
+โ โ โ โโโ lineno: 25
โ โ โโโ -
โ โ โ โโโ nodeid:
โ โ โ โ tests/test_string_utils.py::test_unicode_decode_surrogateesc
โ โ โ โ ape
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_string_utils.py
-โ โ โ โโโ lineno: 29
-โ โ โ โโโ domain: test_unicode_decode_surrogateescape
+โ โ โ โโโ lineno: 29
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_string_utils.py::test_syntax_warning
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_string_utils.py
-โ โ โ โโโ lineno: 33
-โ โ โ โโโ domain: test_syntax_warning
+โ โ โ โโโ lineno: 33
โ โ โโโ -
โ โ โ โโโ nodeid:
โ โ โ โ tests/test_string_utils.py::test_xfail_uppercase_digits
โ โ โ โโโ type: Function
-โ โ โ โโโ path: tests/test_string_utils.py
-โ โ โ โโโ lineno: 37
-โ โ โ โโโ domain: test_xfail_uppercase_digits
+โ โ โ โโโ lineno: 37
โ โ โโโ -
โ โ โโโ nodeid:
โ โ โ tests/test_string_utils.py::test_keyboard_interrupt_direct
โ โ โโโ type: Function
-โ โ โโโ path: tests/test_string_utils.py
-โ โ โโโ lineno: 48
-โ โ โโโ domain: test_keyboard_interrupt_direct
+โ โ โโโ lineno: 48
โ โโโ -
โ โ โโโ nodeid: tests
โ โ โโโ outcome: passed
-โ โ โโโ children
+โ โ โโโ result
โ โ โโโ -
โ โ โ โโโ nodeid: tests/test_broken_fct.py
โ โ โ โโโ type: Module
@@ -651,7 +507,7 @@
โ โโโ -
โ โโโ nodeid: .
โ โโโ outcome: passed
-โ โโโ children
+โ โโโ result
โ โโโ -
โ โ โโโ nodeid: ci-reports
โ โ โโโ type: Dir
@@ -661,4 +517,2482 @@
โ โโโ -
โ โโโ nodeid: tests
โ โโโ type: Dir
-โโโ tests
+โโโ 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.003419185057282448
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.000472470885142684
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00024303095415234566
+โ โ โโโ 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.0004742399323731661
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0002890131436288357
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.0001505659893155098
+โ โ โโโ 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.00011289305984973907
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00016151205636560917
+โ โ โ โโโ 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.0001429300755262375
+โ โ โโโ 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.00012631993740797043
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00017893104813992977
+โ โ โ โโโ 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.00013928301632404327
+โ โ โโโ 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.0002248440869152546
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00018275482580065727
+โ โ โ โโโ 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 0x7fe4e2616af0>
+โ โ โ
+โ โ โ 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.00016953307203948498
+โ โ โโโ 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.00020636292174458504
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0033249349799007177
+โ โ โ โโโ 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 0x7fe4e4b609d0>
+โ โ โ
+โ โ โ 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 =
+โ โ โ 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.000313405878841877
+โ โ โโโ 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.0001538179349154234
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0001958401408046484
+โ โ โ โโโ 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.00018512201495468616
+โ โ โโโ 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.00024126004427671432
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00022352603264153004
+โ โ โ โโโ 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 0x7fe4e4a56130>
+โ โ โ
+โ โ โ 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.000180921982973814
+โ โ โโโ 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.0006433418020606041
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0011733209248632193
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00015070708468556404
+โ โ โโโ 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.00011498690582811832
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00018516392447054386
+โ โ โ โโโ 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.00013639195822179317
+โ โ โโโ 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.00013531814329326153
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00015336903743445873
+โ โ โ โโโ 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.0001357619185000658
+โ โ โโโ 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.00011618714779615402
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00015196599997580051
+โ โ โ โโโ 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.00013581500388681889
+โ โ โโโ 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.00031072297133505344
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00014862394891679287
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00015942403115332127
+โ โ โโโ 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.0002567949704825878
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0001669351477175951
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00014910101890563965
+โ โ โโโ 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.00024331314489245415
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00014110002666711807
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00013592513278126717
+โ โ โโโ 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.00024708383716642857
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00014045112766325474
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00013470486737787724
+โ โ โโโ 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.00024416414089500904
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00015440606512129307
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00014007603749632835
+โ โ โโโ 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.0002395219635218382
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00013332907110452652
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00013489299453794956
+โ โ โโโ 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.00024176808074116707
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0001257229596376419
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00014199083670973778
+โ โ โโโ 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.00025285803712904453
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00012931902892887592
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00013254000805318356
+โ โ โโโ 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.00010879593901336193
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0004584621638059616
+โ โ โ โโโ 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.00014171120710670948
+โ โ โโโ 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.00011756992898881435
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00016937893815338612
+โ โ โ โโโ 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.00014337711036205292
+โ โ โโโ 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.00014761206693947315
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00030593201518058777
+โ โ โ โโโ 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.00014047999866306782
+โ โ โโโ 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.00011773314327001572
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0001638028770685196
+โ โ โ โโโ 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.00013491790741682053
+โ โ โโโ 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.000116697046905756
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00014961487613618374
+โ โ โ โโโ 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.00014125881716609
+โ โ โโโ 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.00012048985809087753
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00015808199532330036
+โ โ โ โโโ 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.00013959710486233234
+โ โ โโโ 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.0001256088726222515
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0007832208648324013
+โ โ โ โโโ 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.00023767701350152493
+โ โ โโโ 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.00014870893210172653
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0001807732041925192
+โ โ โ โโโ 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.00019396096467971802
+โ โ โโโ 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.00016696378588676453
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0001955660991370678
+โ โ โ โโโ 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.00015675905160605907
+โ โ โโโ 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.000126649159938097
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0001802078913897276
+โ โ โ โโโ 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.0001477380283176899
+โ โ โโโ 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.00012752297334372997
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.000165645033121109
+โ โ โ โโโ 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.00014363601803779602
+โ โ โโโ 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.00013963296078145504
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.000164153054356575
+โ โ โ โโโ 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.0001435901504009962
+โ โ โโโ 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.00012350897304713726
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0001639300025999546
+โ โ โ โโโ 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.00013932213187217712
+โ โ โโโ 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.00013334909453988075
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.000156317837536335
+โ โ โ โโโ 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
+โ โ โ โ โโโ -
+โ โ โ โ โ โโโ 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 =
+โ โ โ func = . at
+โ โ โ 0x7fe4e263e790>
+โ โ โ when = 'call'
+โ โ โ reraise = (, )
+โ โ โ
+โ โ โ @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: 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 = _capture_fixture=None>
+โ โ โ item =
+โ โ โ
+โ โ โ @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.0002864869311451912
+โ โ โโโ 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.00014689704403281212
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00018528103828430176
+โ โ โ โโโ 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.00020994199439883232
+โ โ โโโ 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.00013714516535401344
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0001826849766075611
+โ โ โ โโโ outcome: failed
+โ โ โ โโโ crash
+โ โ โ โ โโโ path: /workspace/tligui_y/slic/tests/test_math_utils.py
+โ โ โ โ โโโ lineno: 114
+โ โ โ โ โโโ message: File "", line 1
+โ โ โ โ def bad(:
+โ โ โ โ ^
+โ โ โ โ SyntaxError: invalid syntax
+โ โ โ โโโ traceback
+โ โ โ โ โโโ -
+โ โ โ โ โโโ path: tests/test_math_utils.py
+โ โ โ โ โโโ lineno: 114
+โ โ โ โ โโโ message: SyntaxError
+โ โ โ โโโ longrepr: def test_malformed_code():
+โ โ โ # SyntaxError when executing malformed Python code
+โ โ โ > exec("def bad(:\n pass")
+โ โ โ E File "", line 1
+โ โ โ E def bad(:
+โ โ โ E ^
+โ โ โ E SyntaxError: invalid syntax
+โ โ โ
+โ โ โ tests/test_math_utils.py:114: SyntaxError
+โ โ โโโ teardown
+โ โ โโโ duration: 0.0001661311835050583
+โ โ โโโ 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.00013048900291323662
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00016428297385573387
+โ โ โ โโโ 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.00014870497398078442
+โ โ โโโ 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.00013548904098570347
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0001607921440154314
+โ โ โ โโโ 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.000142277916893363
+โ โ โโโ 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.00012082117609679699
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0001567548606544733
+โ โ โ โโโ 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.00013832305558025837
+โ โ โโโ 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.00012366706505417824
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00047593098133802414
+โ โ โ โโโ outcome: failed
+โ โ โ โโโ crash
+โ โ โ โ โโโ path:
+โ โ โ โ โโโ 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:
+โ โ โ โ โ โโโ lineno: 1014
+โ โ โ โ โ โโโ message: in _gcd_import
+โ โ โ โ โโโ -
+โ โ โ โ โ โโโ path:
+โ โ โ โ โ โโโ lineno: 991
+โ โ โ โ โ โโโ message: in _find_and_load
+โ โ โ โ โโโ -
+โ โ โ โ โโโ path:
+โ โ โ โ โโโ lineno: 973
+โ โ โ โ โโโ message: ModuleNotFoundError
+โ โ โ โโโ longrepr: def test_module_not_found_error():
+โ โ โ # Raises ModuleNotFoundError (subclass of ImportError)
+โ โ โ for missing module
+โ โ โ > importlib.import_module("non_existent_module_xyz")
+โ โ โ
+โ โ โ 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)
+โ โ โ :1014: in _gcd_import
+โ โ โ ???
+โ โ โ :991: in _find_and_load
+โ โ โ ???
+โ โ โ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+โ โ โ _ _ _ _ _ _ _ _
+โ โ โ
+โ โ โ name = 'non_existent_module_xyz'
+โ โ โ import_ =
+โ โ โ
+โ โ โ > ???
+โ โ โ E ModuleNotFoundError: No module named
+โ โ โ 'non_existent_module_xyz'
+โ โ โ
+โ โ โ :973: ModuleNotFoundError
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00019715703092515469
+โ โ โโโ 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.0002710449043661356
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00015092105604708195
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.0001268621999770403
+โ โ โโโ 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.0001794830895960331
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00012820097617805004
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00012323795817792416
+โ โ โโโ 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.0001810300163924694
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00012784008868038654
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00011803698725998402
+โ โ โโโ 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.00026119197718799114
+โ โ โ โโโ outcome: skipped
+โ โ โ โโโ longrepr: ('/workspace/tligui_y/slic/tests/test_param.py', 12,
+โ โ โ 'Skipped: nope')
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00011255498975515366
+โ โ โโโ 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.000236947787925601
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00012927898205816746
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00013408297672867775
+โ โ โโโ 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.00022608600556850433
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0001266608014702797
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00012320210225880146
+โ โ โโโ 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.0001700578723102808
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.000130112050101161
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.0001140739768743515
+โ โ โโโ 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.00025296397507190704
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00012605194933712482
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00014653708785772324
+โ โ โโโ 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.00026221410371363163
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00012742099352180958
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.000133465975522995
+โ โ โโโ 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.00021141208708286285
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0001249860506504774
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00012351106852293015
+โ โ โโโ 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.00021494505926966667
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00012786895968019962
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00012217299081385136
+โ โ โโโ 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.0002167790662497282
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0002656050492078066
+โ โ โ โโโ 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.000179684953764081
+โ โ โโโ 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.0002031258773058653
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00013391789980232716
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00011843699030578136
+โ โ โโโ 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.0001749400980770588
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0001242249272763729
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00011219712905585766
+โ โ โโโ 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.00018349196761846542
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00012882915325462818
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.0001130630262196064
+โ โ โโโ 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.00016994192264974117
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00012962380424141884
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00011412100866436958
+โ โ โโโ 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.00016118120402097702
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00012306193821132183
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00010870699770748615
+โ โ โโโ 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.00015518395230174065
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0001309509389102459
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00011090096086263657
+โ โ โโโ 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.00020080292597413063
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0001306449994444847
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00012210989370942116
+โ โ โโโ 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.0002049049362540245
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0001269590575248003
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.000125763937830925
+โ โ โโโ 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.0001976208295673132
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00012423284351825714
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.000127855921164155
+โ โ โโโ 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.00020208791829645634
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00012378999963402748
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00013137515634298325
+โ โ โโโ 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.00016164383850991726
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00012804497964680195
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00011342903599143028
+โ โ โโโ 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.00016286317259073257
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00012227008119225502
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00011130701750516891
+โ โ โโโ outcome: passed
+โ โโโ -
+โ โ โโโ nodeid: tests/test_param.py::test_addition
+โ โ โโโ lineno: 94
+โ โ โโโ outcome: failed
+โ โ โโโ keywords
+โ โ โ โโโ test_addition
+โ โ โ โโโ test_param.py
+โ โ โ โโโ tests
+โ โ โ โโโ slic
+โ โ โ โโโ
+โ โ โโโ setup
+โ โ โ โโโ duration: 0.00010095001198351383
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00015792297199368477
+โ โ โ โโโ 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.00014517712406814098
+โ โ โโโ 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.00015376601368188858
+โ โ โ โโโ 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.0001266880426555872
+โ โ โโโ 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.00012137484736740589
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0001478111371397972
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00010024895891547203
+โ โ โโโ 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.000106095802038908
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00015716394409537315
+โ โ โ โโโ 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.00013588415458798409
+โ โ โโโ 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.00011761300265789032
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00014080386608839035
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 9.911693632602692e-05
+โ โ โโโ outcome: passed
+โ โโโ -
+โ โ โโโ nodeid: tests/test_string_utils.py::test_warning_emit
+โ โ โโโ lineno: 21
+โ โ โโโ outcome: passed
+โ โ โโโ keywords
+โ โ โ โโโ test_warning_emit
+โ โ โ โโโ test_string_utils.py
+โ โ โ โโโ tests
+โ โ โ โโโ slic
+โ โ โ โโโ
+โ โ โโโ setup
+โ โ โ โโโ duration: 0.00011179898865520954
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00014877296052873135
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 9.969901293516159e-05
+โ โ โโโ outcome: passed
+โ โโโ -
+โ โ โโโ nodeid: tests/test_string_utils.py::test_unicode_decode_error
+โ โ โโโ lineno: 25
+โ โ โโโ outcome: failed
+โ โ โโโ keywords
+โ โ โ โโโ test_unicode_decode_error
+โ โ โ โโโ test_string_utils.py
+โ โ โ โโโ tests
+โ โ โ โโโ slic
+โ โ โ โโโ
+โ โ โโโ setup
+โ โ โ โโโ duration: 0.00011409702710807323
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0001466700341552496
+โ โ โ โโโ 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.00013504689559340477
+โ โ โโโ 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.00012762891128659248
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.00015335390344262123
+โ โ โ โโโ 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.0001336880959570408
+โ โ โโโ 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.0001194619107991457
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0001617218367755413
+โ โ โ โโโ outcome: passed
+โ โ โโโ teardown
+โ โ โโโ duration: 0.00010246597230434418
+โ โ โโโ 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.0001197748351842165
+โ โ โ โโโ outcome: passed
+โ โ โโโ call
+โ โ โ โโโ duration: 0.0006523651536554098
+โ โ โ โโโ 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.00013429392129182816
+โ โ โโโ outcome: passed
+โ โโโ -
+โ โโโ nodeid: tests/test_string_utils.py::test_keyboard_interrupt_direct
+โ โโโ lineno: 48
+โ โโโ outcome: passed
+โ โโโ keywords
+โ โ โโโ test_keyboard_interrupt_direct
+โ โ โโโ test_string_utils.py
+โ โ โโโ tests
+โ โ โโโ slic
+โ โ โโโ
+โ โโโ setup
+โ โโโ duration: 0.00011712592095136642
+โ โโโ 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
diff --git a/ci-reports/markdown/pytest-report.json b/ci-reports/markdown/pytest-report.json
index 3181dda5..b47997f6 100644
--- a/ci-reports/markdown/pytest-report.json
+++ b/ci-reports/markdown/pytest-report.json
@@ -1 +1 @@
-{"created": 1753085551.0529785, "duration": 0.1884441375732422, "exitcode": 3, "root": "/workspace/tligui_y/slic", "environment": {}, "summary": {"total": 0}, "collectors": [{"nodeid": "", "outcome": "passed", "children": [{"nodeid": ".", "type": "Dir"}]}, {"nodeid": "ci-reports/allure/data", "outcome": "passed", "children": []}, {"nodeid": "ci-reports/allure/export", "outcome": "passed", "children": []}, {"nodeid": "ci-reports/allure/history", "outcome": "passed", "children": []}, {"nodeid": "ci-reports/allure/plugin/behaviors", "outcome": "passed", "children": []}, {"nodeid": "ci-reports/allure/plugin/packages", "outcome": "passed", "children": []}, {"nodeid": "ci-reports/allure/plugin/screen-diff", "outcome": "passed", "children": []}, {"nodeid": "ci-reports/allure/plugin", "outcome": "passed", "children": [{"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", "children": []}, {"nodeid": "ci-reports/allure", "outcome": "passed", "children": [{"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", "children": []}, {"nodeid": "ci-reports/markdown", "outcome": "passed", "children": []}, {"nodeid": "ci-reports", "outcome": "passed", "children": [{"nodeid": "ci-reports/allure", "type": "Dir"}, {"nodeid": "ci-reports/coverage", "type": "Dir"}, {"nodeid": "ci-reports/markdown", "type": "Dir"}]}, {"nodeid": "functions", "outcome": "passed", "children": []}, {"nodeid": "tests/test_broken_fct.py", "outcome": "failed", "children": [], "longrepr": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/python.py:493: in importtestmodule\n mod = import_path(\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/pathlib.py:587: in import_path\n importlib.import_module(module_name)\n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\n:1014: in _gcd_import\n ???\n:991: in _find_and_load\n ???\n:975: in _find_and_load_unlocked\n ???\n:671: in _load_unlocked\n ???\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rewrite.py:175: in exec_module\n source_stat, co = _rewrite_test(fn, self.config)\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rewrite.py:355: in _rewrite_test\n tree = ast.parse(source, filename=strfn)\n.pixi/envs/default/lib/python3.8/ast.py:47: in parse\n return compile(source, filename, mode, flags,\nE File \"/workspace/tligui_y/slic/tests/test_broken_fct.py\", line 8\nE def test_valid_2():\nE ^\nE SyntaxError: invalid syntax"}, {"nodeid": "tests/test_collector_error.py", "outcome": "failed", "children": [], "longrepr": "ImportError while importing test module '/workspace/tligui_y/slic/tests/test_collector_error.py'.\nHint: make sure your test modules/packages have valid Python names.\nTraceback:\n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\ntests/test_collector_error.py:1: in \n from no_existing_module.math_utils import *\nE ModuleNotFoundError: No module named 'no_existing_module'"}, {"nodeid": "tests/test_io_utils.py", "outcome": "passed", "children": [{"nodeid": "tests/test_io_utils.py::test_write_file", "type": "Function", "path": "tests/test_io_utils.py", "lineno": 9, "domain": "test_write_file"}, {"nodeid": "tests/test_io_utils.py::test_read_file", "type": "Function", "path": "tests/test_io_utils.py", "lineno": 15, "domain": "test_read_file"}, {"nodeid": "tests/test_io_utils.py::test_cause_io_error", "type": "Function", "path": "tests/test_io_utils.py", "lineno": 22, "domain": "test_cause_io_error"}, {"nodeid": "tests/test_io_utils.py::test_file_not_found", "type": "Function", "path": "tests/test_io_utils.py", "lineno": 26, "domain": "test_file_not_found"}, {"nodeid": "tests/test_io_utils.py::test_permission_error", "type": "Function", "path": "tests/test_io_utils.py", "lineno": 30, "domain": "test_permission_error"}, {"nodeid": "tests/test_io_utils.py::test_mock_open_error", "type": "Function", "path": "tests/test_io_utils.py", "lineno": 37, "domain": "test_mock_open_error"}, {"nodeid": "tests/test_io_utils.py::test_file_handle_closed_error", "type": "Function", "path": "tests/test_io_utils.py", "lineno": 45, "domain": "test_file_handle_closed_error"}, {"nodeid": "tests/test_io_utils.py::test_os_error", "type": "Function", "path": "tests/test_io_utils.py", "lineno": 51, "domain": "test_os_error"}, {"nodeid": "tests/test_io_utils.py::test_write_file_in_readonly_mode", "type": "Function", "path": "tests/test_io_utils.py", "lineno": 58, "domain": "test_write_file_in_readonly_mode"}, {"nodeid": "tests/test_io_utils.py::test_file_not_found_error", "type": "Function", "path": "tests/test_io_utils.py", "lineno": 67, "domain": "test_file_not_found_error"}]}, {"nodeid": "tests/test_math_utils.py", "outcome": "passed", "children": [{"nodeid": "tests/test_math_utils.py::test_broken", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 13, "domain": "test_broken"}, {"nodeid": "tests/test_math_utils.py::test_call_missing_function", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 17, "domain": "test_call_missing_function"}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[2-2-4]", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 22, "domain": "test_addition_pass[2-2-4]"}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[1-5-6]", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 22, "domain": "test_addition_pass[1-5-6]"}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-7]", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 22, "domain": "test_addition_pass[3-4-7]"}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-5-8]", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 22, "domain": "test_addition_pass[3-5-8]"}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-6-9]", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 22, "domain": "test_addition_pass[3-6-9]"}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=2,b=2,expected=4]", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 36, "domain": "test_addition_pass_id[a=2,b=2,expected=4]"}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=1,b=5,expected=6]", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 36, "domain": "test_addition_pass_id[a=1,b=5,expected=6]"}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=3,b=4,expected=7]", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 36, "domain": "test_addition_pass_id[a=3,b=4,expected=7]"}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 48, "domain": "test_addition_fail"}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 52, "domain": "test_division_zero"}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 56, "domain": "test_multiply_xfail"}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 61, "domain": "test_runtime_error"}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 65, "domain": "test_memory_error"}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 69, "domain": "test_timeout_error"}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 73, "domain": "test_recursion_error"}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 79, "domain": "test_floating_point_error"}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 83, "domain": "test_floating_point_overflow"}, {"nodeid": "tests/test_math_utils.py::test_value_error", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 87, "domain": "test_value_error"}, {"nodeid": "tests/test_math_utils.py::test_wrong_argument_error", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 91, "domain": "test_wrong_argument_error"}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 95, "domain": "test_unhandled_exception"}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 99, "domain": "test_custom_error"}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 103, "domain": "test_stop_iteration_direct"}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 107, "domain": "test_generator_exit_direct"}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 111, "domain": "test_malformed_code"}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 115, "domain": "test_sys_exit"}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 119, "domain": "test_broken_function"}, {"nodeid": "tests/test_math_utils.py::test_import_error", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 125, "domain": "test_import_error"}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 129, "domain": "test_module_not_found_error"}]}, {"nodeid": "tests/test_param.py", "outcome": "passed", "children": [{"nodeid": "tests/test_param.py::test_basic_ids[one]", "type": "Function", "path": "tests/test_param.py", "lineno": 3, "domain": "test_basic_ids[one]"}, {"nodeid": "tests/test_param.py::test_basic_ids[two]", "type": "Function", "path": "tests/test_param.py", "lineno": 3, "domain": "test_basic_ids[two]"}, {"nodeid": "tests/test_param.py::test_with_reason_and_marks[ten]", "type": "Function", "path": "tests/test_param.py", "lineno": 11, "domain": "test_with_reason_and_marks[ten]"}, {"nodeid": "tests/test_param.py::test_with_reason_and_marks[twenty]", "type": "Function", "path": "tests/test_param.py", "lineno": 11, "domain": "test_with_reason_and_marks[twenty]"}, {"nodeid": "tests/test_param.py::test_multiple_positional_args[1-2]", "type": "Function", "path": "tests/test_param.py", "lineno": 19, "domain": "test_multiple_positional_args[1-2]"}, {"nodeid": "tests/test_param.py::test_multiple_positional_args[3-4]", "type": "Function", "path": "tests/test_param.py", "lineno": 19, "domain": "test_multiple_positional_args[3-4]"}, {"nodeid": "tests/test_param.py::test_non_literal_with_id[custom-obj]", "type": "Function", "path": "tests/test_param.py", "lineno": 27, "domain": "test_non_literal_with_id[custom-obj]"}, {"nodeid": "tests/test_param.py::test_timedistance_v1[a0-b0-expected0]", "type": "Function", "path": "tests/test_param.py", "lineno": 43, "domain": "test_timedistance_v1[a0-b0-expected0]"}, {"nodeid": "tests/test_param.py::test_timedistance_v1[a1-b1-expected1]", "type": "Function", "path": "tests/test_param.py", "lineno": 43, "domain": "test_timedistance_v1[a1-b1-expected1]"}, {"nodeid": "tests/test_param.py::test_sum_positive[one]", "type": "Function", "path": "tests/test_param.py", "lineno": 55, "domain": "test_sum_positive[one]"}, {"nodeid": "tests/test_param.py::test_sum_positive[two]", "type": "Function", "path": "tests/test_param.py", "lineno": 55, "domain": "test_sum_positive[two]"}, {"nodeid": "tests/test_param.py::test_sum_positive[edge]", "type": "Function", "path": "tests/test_param.py", "lineno": 55, "domain": "test_sum_positive[edge]"}, {"nodeid": "tests/test_param.py::test_dynamic[ten]", "type": "Function", "path": "tests/test_param.py", "lineno": 65, "domain": "test_dynamic[ten]"}, {"nodeid": "tests/test_param.py::test_dynamic[twenty]", "type": "Function", "path": "tests/test_param.py", "lineno": 65, "domain": "test_dynamic[twenty]"}, {"nodeid": "tests/test_param.py::test_dynamic[thirty]", "type": "Function", "path": "tests/test_param.py", "lineno": 65, "domain": "test_dynamic[thirty]"}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f525]", "type": "Function", "path": "tests/test_param.py", "lineno": 74, "domain": "test_element_type[\\U0001f525]"}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f4a7]", "type": "Function", "path": "tests/test_param.py", "lineno": 74, "domain": "test_element_type[\\U0001f4a7]"}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f30d]", "type": "Function", "path": "tests/test_param.py", "lineno": 74, "domain": "test_element_type[\\U0001f30d]"}, {"nodeid": "tests/test_param.py::test_combination[a-1]", "type": "Function", "path": "tests/test_param.py", "lineno": 78, "domain": "test_combination[a-1]"}, {"nodeid": "tests/test_param.py::test_combination[a-2]", "type": "Function", "path": "tests/test_param.py", "lineno": 78, "domain": "test_combination[a-2]"}, {"nodeid": "tests/test_param.py::test_combination[b-1]", "type": "Function", "path": "tests/test_param.py", "lineno": 78, "domain": "test_combination[b-1]"}, {"nodeid": "tests/test_param.py::test_combination[b-2]", "type": "Function", "path": "tests/test_param.py", "lineno": 78, "domain": "test_combination[b-2]"}, {"nodeid": "tests/test_param.py::test_indirect_fixture[1]", "type": "Function", "path": "tests/test_param.py", "lineno": 89, "domain": "test_indirect_fixture[1]"}, {"nodeid": "tests/test_param.py::test_indirect_fixture[2]", "type": "Function", "path": "tests/test_param.py", "lineno": 89, "domain": "test_indirect_fixture[2]"}, {"nodeid": "tests/test_param.py::test_addition", "type": "Function", "path": "tests/test_param.py", "lineno": 94, "domain": "test_addition"}, {"nodeid": "tests/test_param.py::test_basic_error", "type": "Function", "path": "tests/test_param.py", "lineno": 99, "domain": "test_basic_error"}]}, {"nodeid": "tests/test_string_utils.py", "outcome": "passed", "children": [{"nodeid": "tests/test_string_utils.py::test_uppercase_normal", "type": "Function", "path": "tests/test_string_utils.py", "lineno": 9, "domain": "test_uppercase_normal"}, {"nodeid": "tests/test_string_utils.py::test_uppercase_type_error", "type": "Function", "path": "tests/test_string_utils.py", "lineno": 13, "domain": "test_uppercase_type_error"}, {"nodeid": "tests/test_string_utils.py::test_reverse_string", "type": "Function", "path": "tests/test_string_utils.py", "lineno": 17, "domain": "test_reverse_string"}, {"nodeid": "tests/test_string_utils.py::test_warning_emit", "type": "Function", "path": "tests/test_string_utils.py", "lineno": 21, "domain": "test_warning_emit"}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_error", "type": "Function", "path": "tests/test_string_utils.py", "lineno": 25, "domain": "test_unicode_decode_error"}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_surrogateescape", "type": "Function", "path": "tests/test_string_utils.py", "lineno": 29, "domain": "test_unicode_decode_surrogateescape"}, {"nodeid": "tests/test_string_utils.py::test_syntax_warning", "type": "Function", "path": "tests/test_string_utils.py", "lineno": 33, "domain": "test_syntax_warning"}, {"nodeid": "tests/test_string_utils.py::test_xfail_uppercase_digits", "type": "Function", "path": "tests/test_string_utils.py", "lineno": 37, "domain": "test_xfail_uppercase_digits"}, {"nodeid": "tests/test_string_utils.py::test_keyboard_interrupt_direct", "type": "Function", "path": "tests/test_string_utils.py", "lineno": 48, "domain": "test_keyboard_interrupt_direct"}]}, {"nodeid": "tests", "outcome": "passed", "children": [{"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", "children": [{"nodeid": "ci-reports", "type": "Dir"}, {"nodeid": "functions", "type": "Package"}, {"nodeid": "tests", "type": "Dir"}]}], "tests": []}
\ No newline at end of file
+{"created": 1753086150.742535, "duration": 0.8041284084320068, "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": "tests/test_broken_fct.py", "outcome": "failed", "result": [], "longrepr": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/python.py:493: in importtestmodule\n mod = import_path(\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/pathlib.py:587: in import_path\n importlib.import_module(module_name)\n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\n:1014: in _gcd_import\n ???\n:991: in _find_and_load\n ???\n:975: in _find_and_load_unlocked\n ???\n:671: in _load_unlocked\n ???\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rewrite.py:175: in exec_module\n source_stat, co = _rewrite_test(fn, self.config)\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rewrite.py:355: in _rewrite_test\n tree = ast.parse(source, filename=strfn)\n.pixi/envs/default/lib/python3.8/ast.py:47: in parse\n return compile(source, filename, mode, flags,\nE File \"/workspace/tligui_y/slic/tests/test_broken_fct.py\", line 8\nE def test_valid_2():\nE ^\nE SyntaxError: invalid syntax"}, {"nodeid": "tests/test_collector_error.py", "outcome": "failed", "result": [], "longrepr": "ImportError while importing test module '/workspace/tligui_y/slic/tests/test_collector_error.py'.\nHint: make sure your test modules/packages have valid Python names.\nTraceback:\n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\ntests/test_collector_error.py:1: in \n from no_existing_module.math_utils import *\nE ModuleNotFoundError: No module named 'no_existing_module'"}, {"nodeid": "tests/test_io_utils.py", "outcome": "passed", "result": [{"nodeid": "tests/test_io_utils.py::test_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[a=2,b=2,expected=4]", "type": "Function", "lineno": 36}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=1,b=5,expected=6]", "type": "Function", "lineno": 36}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=3,b=4,expected=7]", "type": "Function", "lineno": 36}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "type": "Function", "lineno": 48}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "type": "Function", "lineno": 52}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "type": "Function", "lineno": 56}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "type": "Function", "lineno": 61}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "type": "Function", "lineno": 65}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "type": "Function", "lineno": 69}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "type": "Function", "lineno": 73}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "type": "Function", "lineno": 79}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "type": "Function", "lineno": 83}, {"nodeid": "tests/test_math_utils.py::test_value_error", "type": "Function", "lineno": 87}, {"nodeid": "tests/test_math_utils.py::test_wrong_argument_error", "type": "Function", "lineno": 91}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "type": "Function", "lineno": 95}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "type": "Function", "lineno": 99}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "type": "Function", "lineno": 103}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "type": "Function", "lineno": 107}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "type": "Function", "lineno": 111}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "type": "Function", "lineno": 115}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "type": "Function", "lineno": 119}, {"nodeid": "tests/test_math_utils.py::test_import_error", "type": "Function", "lineno": 125}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "type": "Function", "lineno": 129}]}, {"nodeid": "tests/test_param.py", "outcome": "passed", "result": [{"nodeid": "tests/test_param.py::test_basic_ids[one]", "type": "Function", "lineno": 3}, {"nodeid": "tests/test_param.py::test_basic_ids[two]", "type": "Function", "lineno": 3}, {"nodeid": "tests/test_param.py::test_with_reason_and_marks[ten]", "type": "Function", "lineno": 11}, {"nodeid": "tests/test_param.py::test_with_reason_and_marks[twenty]", "type": "Function", "lineno": 11}, {"nodeid": "tests/test_param.py::test_multiple_positional_args[1-2]", "type": "Function", "lineno": 19}, {"nodeid": "tests/test_param.py::test_multiple_positional_args[3-4]", "type": "Function", "lineno": 19}, {"nodeid": "tests/test_param.py::test_non_literal_with_id[custom-obj]", "type": "Function", "lineno": 27}, {"nodeid": "tests/test_param.py::test_timedistance_v1[a0-b0-expected0]", "type": "Function", "lineno": 43}, {"nodeid": "tests/test_param.py::test_timedistance_v1[a1-b1-expected1]", "type": "Function", "lineno": 43}, {"nodeid": "tests/test_param.py::test_sum_positive[one]", "type": "Function", "lineno": 55}, {"nodeid": "tests/test_param.py::test_sum_positive[two]", "type": "Function", "lineno": 55}, {"nodeid": "tests/test_param.py::test_sum_positive[edge]", "type": "Function", "lineno": 55}, {"nodeid": "tests/test_param.py::test_dynamic[ten]", "type": "Function", "lineno": 65}, {"nodeid": "tests/test_param.py::test_dynamic[twenty]", "type": "Function", "lineno": 65}, {"nodeid": "tests/test_param.py::test_dynamic[thirty]", "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[a-1]", "type": "Function", "lineno": 78}, {"nodeid": "tests/test_param.py::test_combination[a-2]", "type": "Function", "lineno": 78}, {"nodeid": "tests/test_param.py::test_combination[b-1]", "type": "Function", "lineno": 78}, {"nodeid": "tests/test_param.py::test_combination[b-2]", "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_surrogateescape", "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": 48}]}, {"nodeid": "tests", "outcome": "passed", "result": [{"nodeid": "tests/test_broken_fct.py", "type": "Module"}, {"nodeid": "tests/test_collector_error.py", "type": "Module"}, {"nodeid": "tests/test_io_utils.py", "type": "Module"}, {"nodeid": "tests/test_math_utils.py", "type": "Module"}, {"nodeid": "tests/test_param.py", "type": "Module"}, {"nodeid": "tests/test_string_utils.py", "type": "Module"}]}, {"nodeid": ".", "outcome": "passed", "result": [{"nodeid": "ci-reports", "type": "Dir"}, {"nodeid": "functions", "type": "Package"}, {"nodeid": "tests", "type": "Dir"}]}], "tests": [{"nodeid": "tests/test_io_utils.py::test_write_file", "lineno": 9, "outcome": "passed", "keywords": ["test_write_file", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.003419185057282448, "outcome": "passed"}, "call": {"duration": 0.000472470885142684, "outcome": "passed"}, "teardown": {"duration": 0.00024303095415234566, "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.0004742399323731661, "outcome": "passed"}, "call": {"duration": 0.0002890131436288357, "outcome": "passed"}, "teardown": {"duration": 0.0001505659893155098, "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.00011289305984973907, "outcome": "passed"}, "call": {"duration": 0.00016151205636560917, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/functions/io_utils.py", "lineno": 10, "message": "OSError: Forced IO Error for testing"}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 25, "message": ""}, {"path": "functions/io_utils.py", "lineno": 10, "message": "OSError"}], "longrepr": "def test_cause_io_error():\n # Raises manual IOError to simulate IO failure\n> cause_io_error()\n\ntests/test_io_utils.py:25: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\n def cause_io_error():\n> raise IOError(\"Forced IO Error for testing\")\nE OSError: Forced IO Error for testing\n\nfunctions/io_utils.py:10: OSError"}, "teardown": {"duration": 0.0001429300755262375, "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.00012631993740797043, "outcome": "passed"}, "call": {"duration": 0.00017893104813992977, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/functions/io_utils.py", "lineno": 2, "message": "FileNotFoundError: [Errno 2] No such file or directory: 'nonexistent.file'"}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 29, "message": ""}, {"path": "functions/io_utils.py", "lineno": 2, "message": "FileNotFoundError"}], "longrepr": "def test_file_not_found():\n # Reading non-existing file raises FileNotFoundError\n> read_file(\"nonexistent.file\")\n\ntests/test_io_utils.py:29: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\npath = 'nonexistent.file'\n\n def read_file(path):\n> with open(path, \"r\", encoding=\"utf-8\") as f:\nE FileNotFoundError: [Errno 2] No such file or directory: 'nonexistent.file'\n\nfunctions/io_utils.py:2: FileNotFoundError"}, "teardown": {"duration": 0.00013928301632404327, "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.0002248440869152546, "outcome": "passed"}, "call": {"duration": 0.00018275482580065727, "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 0x7fe4e2616af0>\n\n def test_permission_error(monkeypatch):\n # Patch open to raise PermissionError simulating access denial\n def raise_perm_error(*args, **kwargs):\n raise PermissionError(\"Permission denied\")\n monkeypatch.setattr(\"builtins.open\", raise_perm_error)\n> read_file(\"anyfile.txt\")\n\ntests/test_io_utils.py:36: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nfunctions/io_utils.py:2: in read_file\n with open(path, \"r\", encoding=\"utf-8\") as f:\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nargs = ('anyfile.txt', 'r'), kwargs = {'encoding': 'utf-8'}\n\n def raise_perm_error(*args, **kwargs):\n> raise PermissionError(\"Permission denied\")\nE PermissionError: Permission denied\n\ntests/test_io_utils.py:34: PermissionError"}, "teardown": {"duration": 0.00016953307203948498, "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.00020636292174458504, "outcome": "passed"}, "call": {"duration": 0.0033249349799007177, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/unittest/mock.py", "lineno": 1140, "message": "OSError: Mocked IOError"}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 43, "message": ""}, {"path": ".pixi/envs/default/lib/python3.8/unittest/mock.py", "lineno": 1081, "message": "in __call__"}, {"path": ".pixi/envs/default/lib/python3.8/unittest/mock.py", "lineno": 1085, "message": "in _mock_call"}, {"path": ".pixi/envs/default/lib/python3.8/unittest/mock.py", "lineno": 1140, "message": "OSError"}], "longrepr": "monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fe4e4b609d0>\n\n def test_mock_open_error(monkeypatch):\n # Mock open() to raise IOError simulating read error\n mocked_open = mock.mock_open()\n mocked_open.side_effect = IOError(\"Mocked IOError\")\n monkeypatch.setattr(\"builtins.open\", mocked_open)\n> with open(\"file.txt\", \"r\") as f:\n\ntests/test_io_utils.py:43: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.pixi/envs/default/lib/python3.8/unittest/mock.py:1081: in __call__\n return self._mock_call(*args, **kwargs)\n.pixi/envs/default/lib/python3.8/unittest/mock.py:1085: in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = \nargs = ('file.txt', 'r'), kwargs = {}, effect = OSError('Mocked IOError')\n\n def _execute_mock_call(self, /, *args, **kwargs):\n # separate from _increment_mock_call so that awaited functions are\n # executed separately from their call, also AsyncMock overrides this method\n \n effect = self.side_effect\n if effect is not None:\n if _is_exception(effect):\n> raise effect\nE OSError: Mocked IOError\n\n.pixi/envs/default/lib/python3.8/unittest/mock.py:1140: OSError"}, "teardown": {"duration": 0.000313405878841877, "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.0001538179349154234, "outcome": "passed"}, "call": {"duration": 0.0001958401408046484, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_io_utils.py", "lineno": 50, "message": "ValueError: I/O operation on closed file"}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 50, "message": "ValueError"}], "longrepr": "def test_file_handle_closed_error():\n # Accessing closed file raises ValueError\n f = io.StringIO(\"content\")\n f.close()\n> f.read()\nE ValueError: I/O operation on closed file\n\ntests/test_io_utils.py:50: ValueError"}, "teardown": {"duration": 0.00018512201495468616, "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.00024126004427671432, "outcome": "passed"}, "call": {"duration": 0.00022352603264153004, "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 0x7fe4e4a56130>\n\n def test_os_error(monkeypatch):\n # Patch os.remove to raise OSError simulating filesystem error\n def raise_os_error(path):\n raise OSError(\"Simulated OSError\")\n monkeypatch.setattr(\"os.remove\", raise_os_error)\n> os.remove(\"file.txt\")\n\ntests/test_io_utils.py:57: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\npath = 'file.txt'\n\n def raise_os_error(path):\n> raise OSError(\"Simulated OSError\")\nE OSError: Simulated OSError\n\ntests/test_io_utils.py:55: OSError"}, "teardown": {"duration": 0.000180921982973814, "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.0006433418020606041, "outcome": "passed"}, "call": {"duration": 0.0011733209248632193, "outcome": "passed"}, "teardown": {"duration": 0.00015070708468556404, "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.00011498690582811832, "outcome": "passed"}, "call": {"duration": 0.00018516392447054386, "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():\n # Raises FileNotFoundError when opening a non-existent file\n> open(\"no_such_file.txt\", \"r\")\nE FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt'\n\ntests/test_io_utils.py:70: FileNotFoundError"}, "teardown": {"duration": 0.00013639195822179317, "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.00013531814329326153, "outcome": "passed"}, "call": {"duration": 0.00015336903743445873, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 16, "message": "NameError: name 'want_the_test_to_fail' is not defined"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 16, "message": "NameError"}], "longrepr": "def test_broken():\n # simulating a broken or faulty test implementation that will cause the test to error\n> want_the_test_to_fail\nE NameError: name 'want_the_test_to_fail' is not defined\n\ntests/test_math_utils.py:16: NameError"}, "teardown": {"duration": 0.0001357619185000658, "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.00011618714779615402, "outcome": "passed"}, "call": {"duration": 0.00015196599997580051, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 20, "message": "AttributeError: module 'functions.math_utils' has no attribute 'non_existent_function'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 20, "message": "AttributeError"}], "longrepr": "def test_call_missing_function():\n # Accessing a missing function attribute raises AttributeError\n> getattr(math_utils, \"non_existent_function\")()\nE AttributeError: module 'functions.math_utils' has no attribute 'non_existent_function'\n\ntests/test_math_utils.py:20: AttributeError"}, "teardown": {"duration": 0.00013581500388681889, "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.00031072297133505344, "outcome": "passed"}, "call": {"duration": 0.00014862394891679287, "outcome": "passed"}, "teardown": {"duration": 0.00015942403115332127, "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.0002567949704825878, "outcome": "passed"}, "call": {"duration": 0.0001669351477175951, "outcome": "passed"}, "teardown": {"duration": 0.00014910101890563965, "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.00024331314489245415, "outcome": "passed"}, "call": {"duration": 0.00014110002666711807, "outcome": "passed"}, "teardown": {"duration": 0.00013592513278126717, "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.00024708383716642857, "outcome": "passed"}, "call": {"duration": 0.00014045112766325474, "outcome": "passed"}, "teardown": {"duration": 0.00013470486737787724, "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.00024416414089500904, "outcome": "passed"}, "call": {"duration": 0.00015440606512129307, "outcome": "passed"}, "teardown": {"duration": 0.00014007603749632835, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=2,b=2,expected=4]", "lineno": 36, "outcome": "passed", "keywords": ["test_addition_pass_id[a=2,b=2,expected=4]", "parametrize", "pytestmark", "a=2,b=2,expected=4", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002395219635218382, "outcome": "passed"}, "call": {"duration": 0.00013332907110452652, "outcome": "passed"}, "teardown": {"duration": 0.00013489299453794956, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=1,b=5,expected=6]", "lineno": 36, "outcome": "passed", "keywords": ["test_addition_pass_id[a=1,b=5,expected=6]", "parametrize", "pytestmark", "a=1,b=5,expected=6", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00024176808074116707, "outcome": "passed"}, "call": {"duration": 0.0001257229596376419, "outcome": "passed"}, "teardown": {"duration": 0.00014199083670973778, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=3,b=4,expected=7]", "lineno": 36, "outcome": "passed", "keywords": ["test_addition_pass_id[a=3,b=4,expected=7]", "parametrize", "pytestmark", "a=3,b=4,expected=7", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00025285803712904453, "outcome": "passed"}, "call": {"duration": 0.00012931902892887592, "outcome": "passed"}, "teardown": {"duration": 0.00013254000805318356, "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.00010879593901336193, "outcome": "passed"}, "call": {"duration": 0.0004584621638059616, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 51, "message": "assert 4 == 5\n + where 4 = addition(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 51, "message": "AssertionError"}], "longrepr": "def test_addition_fail():\n # Assertion failure: expected incorrect result\n> assert addition(2, 2) == 5\nE assert 4 == 5\nE + where 4 = addition(2, 2)\n\ntests/test_math_utils.py:51: AssertionError"}, "teardown": {"duration": 0.00014171120710670948, "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.00011756992898881435, "outcome": "passed"}, "call": {"duration": 0.00016937893815338612, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/functions/math_utils.py", "lineno": 5, "message": "ZeroDivisionError: division by zero"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 55, "message": ""}, {"path": "functions/math_utils.py", "lineno": 5, "message": "ZeroDivisionError"}], "longrepr": "def test_division_zero():\n # Will raise ZeroDivisionError if not handled in division\n> division(1, 0)\n\ntests/test_math_utils.py:55: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\na = 1, b = 0\n\n def division(a, b):\n> return a / b\nE ZeroDivisionError: division by zero\n\nfunctions/math_utils.py:5: ZeroDivisionError"}, "teardown": {"duration": 0.00014337711036205292, "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.00014761206693947315, "outcome": "passed"}, "call": {"duration": 0.00030593201518058777, "outcome": "skipped", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 60, "message": "assert 4 == 5\n + where 4 = multiply(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 60, "message": "AssertionError"}], "longrepr": "@pytest.mark.xfail(reason=\"Expected failure\")\n def test_multiply_xfail():\n # Expected fail test (xfail): incorrect expected multiply result\n> assert multiply(2, 2) == 5\nE assert 4 == 5\nE + where 4 = multiply(2, 2)\n\ntests/test_math_utils.py:60: AssertionError"}, "teardown": {"duration": 0.00014047999866306782, "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.00011773314327001572, "outcome": "passed"}, "call": {"duration": 0.0001638028770685196, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 64, "message": "RuntimeError: Forced runtime error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 64, "message": "RuntimeError"}], "longrepr": "def test_runtime_error():\n # Test raises an uncaught RuntimeError\n> raise RuntimeError(\"Forced runtime error\")\nE RuntimeError: Forced runtime error\n\ntests/test_math_utils.py:64: RuntimeError"}, "teardown": {"duration": 0.00013491790741682053, "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.000116697046905756, "outcome": "passed"}, "call": {"duration": 0.00014961487613618374, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 68, "message": "MemoryError: Simulated memory error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 68, "message": "MemoryError"}], "longrepr": "def test_memory_error():\n # Manually raise MemoryError to simulate out-of-memory condition\n> raise MemoryError(\"Simulated memory error\")\nE MemoryError: Simulated memory error\n\ntests/test_math_utils.py:68: MemoryError"}, "teardown": {"duration": 0.00014125881716609, "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.00012048985809087753, "outcome": "passed"}, "call": {"duration": 0.00015808199532330036, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 72, "message": "TimeoutError: Simulated timeout error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 72, "message": "TimeoutError"}], "longrepr": "def test_timeout_error():\n # Manually raise TimeoutError simulating timeout conditions\n> raise TimeoutError(\"Simulated timeout error\")\nE TimeoutError: Simulated timeout error\n\ntests/test_math_utils.py:72: TimeoutError"}, "teardown": {"duration": 0.00013959710486233234, "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.0001256088726222515, "outcome": "passed"}, "call": {"duration": 0.0007832208648324013, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 77, "message": "RecursionError: maximum recursion depth exceeded"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 78, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 77, "message": "in recursive"}, {"path": "tests/test_math_utils.py", "lineno": 77, "message": "in recursive"}], "longrepr": "def test_recursion_error():\n # Infinite recursion triggers RecursionError\n def recursive():\n return recursive()\n> recursive()\n\ntests/test_math_utils.py:78: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \ntests/test_math_utils.py:77: in recursive\n return recursive()\ntests/test_math_utils.py:77: in recursive\n return recursive()\nE RecursionError: maximum recursion depth exceeded\n!!! Recursion detected (same locals & position)"}, "teardown": {"duration": 0.00023767701350152493, "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.00014870893210172653, "outcome": "passed"}, "call": {"duration": 0.0001807732041925192, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 82, "message": "FloatingPointError: Simulated floating point error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 82, "message": "FloatingPointError"}], "longrepr": "def test_floating_point_error():\n # Manually raise FloatingPointError\n> raise FloatingPointError(\"Simulated floating point error\")\nE FloatingPointError: Simulated floating point error\n\ntests/test_math_utils.py:82: FloatingPointError"}, "teardown": {"duration": 0.00019396096467971802, "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.00016696378588676453, "outcome": "passed"}, "call": {"duration": 0.0001955660991370678, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 86, "message": "OverflowError: math range error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 86, "message": "OverflowError"}], "longrepr": "def test_floating_point_overflow():\n # Exponential overflow triggers OverflowError\n> math.exp(1000)\nE OverflowError: math range error\n\ntests/test_math_utils.py:86: OverflowError"}, "teardown": {"duration": 0.00015675905160605907, "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.000126649159938097, "outcome": "passed"}, "call": {"duration": 0.0001802078913897276, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 90, "message": "ValueError: invalid literal for int() with base 10: 'invalid'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 90, "message": "ValueError"}], "longrepr": "def test_value_error():\n # ValueError on invalid integer conversion\n> int(\"invalid\")\nE ValueError: invalid literal for int() with base 10: 'invalid'\n\ntests/test_math_utils.py:90: ValueError"}, "teardown": {"duration": 0.0001477380283176899, "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.00012752297334372997, "outcome": "passed"}, "call": {"duration": 0.000165645033121109, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 94, "message": "TypeError: 'int' object is not iterable"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 94, "message": "TypeError"}], "longrepr": "def test_wrong_argument_error():\n # TypeError when passing wrong argument type to sum\n> sum(5)\nE TypeError: 'int' object is not iterable\n\ntests/test_math_utils.py:94: TypeError"}, "teardown": {"duration": 0.00014363601803779602, "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.00013963296078145504, "outcome": "passed"}, "call": {"duration": 0.000164153054356575, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 98, "message": "Exception: Generic unhandled exception"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 98, "message": "Exception"}], "longrepr": "def test_unhandled_exception():\n # Raises generic unhandled Exception\n> raise Exception(\"Generic unhandled exception\")\nE Exception: Generic unhandled exception\n\ntests/test_math_utils.py:98: Exception"}, "teardown": {"duration": 0.0001435901504009962, "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.00012350897304713726, "outcome": "passed"}, "call": {"duration": 0.0001639300025999546, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 102, "message": "test_math_utils.CustomError: Custom error simulation"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 102, "message": "CustomError"}], "longrepr": "def test_custom_error():\n # Raises user-defined CustomError exception\n> raise CustomError(\"Custom error simulation\")\nE test_math_utils.CustomError: Custom error simulation\n\ntests/test_math_utils.py:102: CustomError"}, "teardown": {"duration": 0.00013932213187217712, "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.00013334909453988075, "outcome": "passed"}, "call": {"duration": 0.000156317837536335, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py", "lineno": 880, "message": "RuntimeError: generator raised StopIteration"}, "traceback": [{"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py", "lineno": 341, "message": ""}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py", "lineno": 242, "message": "in "}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/pluggy/_hooks.py", "lineno": 513, "message": "in __call__"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/pluggy/_manager.py", "lineno": 120, "message": "in _hookexec"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py", "lineno": 92, "message": "in pytest_runtest_call"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py", "lineno": 68, "message": "in thread_exception_runtest_hook"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py", "lineno": 95, "message": "in pytest_runtest_call"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py", "lineno": 70, "message": "in unraisable_exception_runtest_hook"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py", "lineno": 846, "message": "in pytest_runtest_call"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py", "lineno": 829, "message": "in _runtest_for"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py", "lineno": 880, "message": "RuntimeError"}], "longrepr": "def test_stop_iteration_direct():\n # Directly raise StopIteration exception\n> raise StopIteration()\nE StopIteration\n\ntests/test_math_utils.py:106: StopIteration\n\nThe above exception was the direct cause of the following exception:\n\ncls = \nfunc = . at 0x7fe4e263e790>\nwhen = 'call'\nreraise = (, )\n\n @classmethod\n def from_call(\n cls,\n func: Callable[[], TResult],\n when: Literal[\"collect\", \"setup\", \"call\", \"teardown\"],\n reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None,\n ) -> CallInfo[TResult]:\n \"\"\"Call func, wrapping the result in a CallInfo.\n \n :param func:\n The function to call. Called without arguments.\n :type func: Callable[[], _pytest.runner.TResult]\n :param when:\n The phase in which the function is called.\n :param reraise:\n Exception or exceptions that shall propagate if raised by the\n function, instead of being wrapped in the CallInfo.\n \"\"\"\n excinfo = None\n start = timing.time()\n precise_start = timing.perf_counter()\n try:\n> result: TResult | None = func()\n\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py:341: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py:242: in \n lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise\n.pixi/envs/default/lib/python3.8/site-packages/pluggy/_hooks.py:513: in __call__\n return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)\n.pixi/envs/default/lib/python3.8/site-packages/pluggy/_manager.py:120: in _hookexec\n return self._inner_hookexec(hook_name, methods, kwargs, firstresult)\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py:92: in pytest_runtest_call\n yield from thread_exception_runtest_hook()\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py:68: in thread_exception_runtest_hook\n yield\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py:95: in pytest_runtest_call\n yield from unraisable_exception_runtest_hook()\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py:70: in unraisable_exception_runtest_hook\n yield\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py:846: in pytest_runtest_call\n yield from self._runtest_for(item, \"call\")\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py:829: in _runtest_for\n yield\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = _capture_fixture=None>\nitem = \n\n @hookimpl(wrapper=True)\n def pytest_runtest_call(self, item: Item) -> Generator[None]:\n with self.item_capture(\"call\", item):\n> return (yield)\nE RuntimeError: generator raised StopIteration\n\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py:880: RuntimeError"}, "teardown": {"duration": 0.0002864869311451912, "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.00014689704403281212, "outcome": "passed"}, "call": {"duration": 0.00018528103828430176, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 110, "message": "GeneratorExit"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 110, "message": "GeneratorExit"}], "longrepr": "def test_generator_exit_direct():\n # Directly raise GeneratorExit exception\n> raise GeneratorExit()\nE GeneratorExit\n\ntests/test_math_utils.py:110: GeneratorExit"}, "teardown": {"duration": 0.00020994199439883232, "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.00013714516535401344, "outcome": "passed"}, "call": {"duration": 0.0001826849766075611, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 114, "message": " File \"\", line 1\n def bad(:\n ^\nSyntaxError: invalid syntax"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 114, "message": "SyntaxError"}], "longrepr": "def test_malformed_code():\n # SyntaxError when executing malformed Python code\n> exec(\"def bad(:\\n pass\")\nE File \"\", line 1\nE def bad(:\nE ^\nE SyntaxError: invalid syntax\n\ntests/test_math_utils.py:114: SyntaxError"}, "teardown": {"duration": 0.0001661311835050583, "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.00013048900291323662, "outcome": "passed"}, "call": {"duration": 0.00016428297385573387, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 118, "message": "SystemExit: 1"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 118, "message": "SystemExit"}], "longrepr": "def test_sys_exit():\n # Simulate SystemExit via sys.exit\n> sys.exit(1)\nE SystemExit: 1\n\ntests/test_math_utils.py:118: SystemExit"}, "teardown": {"duration": 0.00014870497398078442, "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.00013548904098570347, "outcome": "passed"}, "call": {"duration": 0.0001607921440154314, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 123, "message": "TypeError: Broken function"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 124, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 123, "message": "TypeError"}], "longrepr": "def test_broken_function():\n # Simulate broken function raising TypeError\n def broken_func(*args, **kwargs):\n raise TypeError(\"Broken function\")\n> broken_func()\n\ntests/test_math_utils.py:124: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nargs = (), kwargs = {}\n\n def broken_func(*args, **kwargs):\n> raise TypeError(\"Broken function\")\nE TypeError: Broken function\n\ntests/test_math_utils.py:123: TypeError"}, "teardown": {"duration": 0.000142277916893363, "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.00012082117609679699, "outcome": "passed"}, "call": {"duration": 0.0001567548606544733, "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():\n # Directly raise ImportError exception\n> raise ImportError(\"Simulated ImportError\")\nE ImportError: Simulated ImportError\n\ntests/test_math_utils.py:128: ImportError"}, "teardown": {"duration": 0.00013832305558025837, "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.00012366706505417824, "outcome": "passed"}, "call": {"duration": 0.00047593098133802414, "outcome": "failed", "crash": {"path": "", "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": "", "lineno": 1014, "message": "in _gcd_import"}, {"path": "", "lineno": 991, "message": "in _find_and_load"}, {"path": "", "lineno": 973, "message": "ModuleNotFoundError"}], "longrepr": "def test_module_not_found_error():\n # Raises ModuleNotFoundError (subclass of ImportError) for missing module\n> importlib.import_module(\"non_existent_module_xyz\")\n\ntests/test_math_utils.py:132: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\n:1014: in _gcd_import\n ???\n:991: in _find_and_load\n ???\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nname = 'non_existent_module_xyz'\nimport_ = \n\n> ???\nE ModuleNotFoundError: No module named 'non_existent_module_xyz'\n\n:973: ModuleNotFoundError"}, "teardown": {"duration": 0.00019715703092515469, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_basic_ids[one]", "lineno": 3, "outcome": "passed", "keywords": ["test_basic_ids[one]", "parametrize", "pytestmark", "one", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0002710449043661356, "outcome": "passed"}, "call": {"duration": 0.00015092105604708195, "outcome": "passed"}, "teardown": {"duration": 0.0001268621999770403, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_basic_ids[two]", "lineno": 3, "outcome": "passed", "keywords": ["test_basic_ids[two]", "parametrize", "pytestmark", "two", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0001794830895960331, "outcome": "passed"}, "call": {"duration": 0.00012820097617805004, "outcome": "passed"}, "teardown": {"duration": 0.00012323795817792416, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_with_reason_and_marks[ten]", "lineno": 11, "outcome": "passed", "keywords": ["test_with_reason_and_marks[ten]", "parametrize", "pytestmark", "ten", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0001810300163924694, "outcome": "passed"}, "call": {"duration": 0.00012784008868038654, "outcome": "passed"}, "teardown": {"duration": 0.00011803698725998402, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_with_reason_and_marks[twenty]", "lineno": 11, "outcome": "skipped", "keywords": ["test_with_reason_and_marks[twenty]", "parametrize", "skip", "pytestmark", "twenty", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00026119197718799114, "outcome": "skipped", "longrepr": "('/workspace/tligui_y/slic/tests/test_param.py', 12, 'Skipped: nope')"}, "teardown": {"duration": 0.00011255498975515366, "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.000236947787925601, "outcome": "passed"}, "call": {"duration": 0.00012927898205816746, "outcome": "passed"}, "teardown": {"duration": 0.00013408297672867775, "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.00022608600556850433, "outcome": "passed"}, "call": {"duration": 0.0001266608014702797, "outcome": "passed"}, "teardown": {"duration": 0.00012320210225880146, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_non_literal_with_id[custom-obj]", "lineno": 27, "outcome": "passed", "keywords": ["test_non_literal_with_id[custom-obj]", "parametrize", "pytestmark", "custom-obj", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0001700578723102808, "outcome": "passed"}, "call": {"duration": 0.000130112050101161, "outcome": "passed"}, "teardown": {"duration": 0.0001140739768743515, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_timedistance_v1[a0-b0-expected0]", "lineno": 43, "outcome": "passed", "keywords": ["test_timedistance_v1[a0-b0-expected0]", "parametrize", "pytestmark", "a0-b0-expected0", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00025296397507190704, "outcome": "passed"}, "call": {"duration": 0.00012605194933712482, "outcome": "passed"}, "teardown": {"duration": 0.00014653708785772324, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_timedistance_v1[a1-b1-expected1]", "lineno": 43, "outcome": "passed", "keywords": ["test_timedistance_v1[a1-b1-expected1]", "parametrize", "pytestmark", "a1-b1-expected1", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00026221410371363163, "outcome": "passed"}, "call": {"duration": 0.00012742099352180958, "outcome": "passed"}, "teardown": {"duration": 0.000133465975522995, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_sum_positive[one]", "lineno": 55, "outcome": "passed", "keywords": ["test_sum_positive[one]", "parametrize", "pytestmark", "one", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00021141208708286285, "outcome": "passed"}, "call": {"duration": 0.0001249860506504774, "outcome": "passed"}, "teardown": {"duration": 0.00012351106852293015, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_sum_positive[two]", "lineno": 55, "outcome": "passed", "keywords": ["test_sum_positive[two]", "parametrize", "pytestmark", "two", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00021494505926966667, "outcome": "passed"}, "call": {"duration": 0.00012786895968019962, "outcome": "passed"}, "teardown": {"duration": 0.00012217299081385136, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_sum_positive[edge]", "lineno": 55, "outcome": "failed", "keywords": ["test_sum_positive[edge]", "parametrize", "pytestmark", "edge", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0002167790662497282, "outcome": "passed"}, "call": {"duration": 0.0002656050492078066, "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\n\n @pytest.mark.parametrize(\"x, y\", [(param[\"x\"], param[\"y\"]) for _, param in scenarios], ids=[name for name, _ in scenarios])\n def test_sum_positive(x, y):\n> assert (x + y) >= 0\nE assert (-1 + -1) >= 0\n\ntests/test_param.py:58: AssertionError"}, "teardown": {"duration": 0.000179684953764081, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_dynamic[ten]", "lineno": 65, "outcome": "passed", "keywords": ["test_dynamic[ten]", "ten", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0002031258773058653, "outcome": "passed"}, "call": {"duration": 0.00013391789980232716, "outcome": "passed"}, "teardown": {"duration": 0.00011843699030578136, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_dynamic[twenty]", "lineno": 65, "outcome": "passed", "keywords": ["test_dynamic[twenty]", "twenty", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0001749400980770588, "outcome": "passed"}, "call": {"duration": 0.0001242249272763729, "outcome": "passed"}, "teardown": {"duration": 0.00011219712905585766, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_dynamic[thirty]", "lineno": 65, "outcome": "passed", "keywords": ["test_dynamic[thirty]", "thirty", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00018349196761846542, "outcome": "passed"}, "call": {"duration": 0.00012882915325462818, "outcome": "passed"}, "teardown": {"duration": 0.0001130630262196064, "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.00016994192264974117, "outcome": "passed"}, "call": {"duration": 0.00012962380424141884, "outcome": "passed"}, "teardown": {"duration": 0.00011412100866436958, "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.00016118120402097702, "outcome": "passed"}, "call": {"duration": 0.00012306193821132183, "outcome": "passed"}, "teardown": {"duration": 0.00010870699770748615, "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.00015518395230174065, "outcome": "passed"}, "call": {"duration": 0.0001309509389102459, "outcome": "passed"}, "teardown": {"duration": 0.00011090096086263657, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_combination[a-1]", "lineno": 78, "outcome": "passed", "keywords": ["test_combination[a-1]", "parametrize", "pytestmark", "a-1", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00020080292597413063, "outcome": "passed"}, "call": {"duration": 0.0001306449994444847, "outcome": "passed"}, "teardown": {"duration": 0.00012210989370942116, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_combination[a-2]", "lineno": 78, "outcome": "passed", "keywords": ["test_combination[a-2]", "parametrize", "pytestmark", "a-2", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0002049049362540245, "outcome": "passed"}, "call": {"duration": 0.0001269590575248003, "outcome": "passed"}, "teardown": {"duration": 0.000125763937830925, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_combination[b-1]", "lineno": 78, "outcome": "passed", "keywords": ["test_combination[b-1]", "parametrize", "pytestmark", "b-1", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0001976208295673132, "outcome": "passed"}, "call": {"duration": 0.00012423284351825714, "outcome": "passed"}, "teardown": {"duration": 0.000127855921164155, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_combination[b-2]", "lineno": 78, "outcome": "passed", "keywords": ["test_combination[b-2]", "parametrize", "pytestmark", "b-2", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00020208791829645634, "outcome": "passed"}, "call": {"duration": 0.00012378999963402748, "outcome": "passed"}, "teardown": {"duration": 0.00013137515634298325, "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.00016164383850991726, "outcome": "passed"}, "call": {"duration": 0.00012804497964680195, "outcome": "passed"}, "teardown": {"duration": 0.00011342903599143028, "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.00016286317259073257, "outcome": "passed"}, "call": {"duration": 0.00012227008119225502, "outcome": "passed"}, "teardown": {"duration": 0.00011130701750516891, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_addition", "lineno": 94, "outcome": "failed", "keywords": ["test_addition", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00010095001198351383, "outcome": "passed"}, "call": {"duration": 0.00015792297199368477, "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\n\n def test_addition(a = 5, b = 5, expected = 10):\n # Has to pass\n> assert addition(a, b) == expected\nE NameError: name 'addition' is not defined\n\ntests/test_param.py:97: NameError"}, "teardown": {"duration": 0.00014517712406814098, "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.00015376601368188858, "outcome": "failed", "longrepr": "file /workspace/tligui_y/slic/tests/test_param.py, line 100\n def test_basic_error(x):\nE fixture 'x' not found\n> available fixtures: cache, capfd, capfdbinary, caplog, capsys, capsysbinary, complex_setup, cov, doctest_namespace, element, extra, extras, include_metadata_in_junit_xml, json_metadata, metadata, monkeypatch, no_cover, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory\n> use 'pytest --fixtures [testpath]' for help on them.\n\n/workspace/tligui_y/slic/tests/test_param.py:100"}, "teardown": {"duration": 0.0001266880426555872, "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.00012137484736740589, "outcome": "passed"}, "call": {"duration": 0.0001478111371397972, "outcome": "passed"}, "teardown": {"duration": 0.00010024895891547203, "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.000106095802038908, "outcome": "passed"}, "call": {"duration": 0.00015716394409537315, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/functions/string_utils.py", "lineno": 3, "message": "TypeError: Input cannot be None"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 16, "message": ""}, {"path": "functions/string_utils.py", "lineno": 3, "message": "TypeError"}], "longrepr": "def test_uppercase_type_error():\n # TypeError when input is None (invalid input)\n> uppercase(None)\n\ntests/test_string_utils.py:16: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\ns = None\n\n def uppercase(s):\n if s is None:\n> raise TypeError(\"Input cannot be None\")\nE TypeError: Input cannot be None\n\nfunctions/string_utils.py:3: TypeError"}, "teardown": {"duration": 0.00013588415458798409, "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.00011761300265789032, "outcome": "passed"}, "call": {"duration": 0.00014080386608839035, "outcome": "passed"}, "teardown": {"duration": 9.911693632602692e-05, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_warning_emit", "lineno": 21, "outcome": "passed", "keywords": ["test_warning_emit", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011179898865520954, "outcome": "passed"}, "call": {"duration": 0.00014877296052873135, "outcome": "passed"}, "teardown": {"duration": 9.969901293516159e-05, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_error", "lineno": 25, "outcome": "failed", "keywords": ["test_unicode_decode_error", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011409702710807323, "outcome": "passed"}, "call": {"duration": 0.0001466700341552496, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 28, "message": "UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 28, "message": "UnicodeDecodeError"}], "longrepr": "def test_unicode_decode_error():\n # UnicodeDecodeError when decoding invalid byte sequence\n> b'\\xff'.decode('utf-8')\nE UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte\n\ntests/test_string_utils.py:28: UnicodeDecodeError"}, "teardown": {"duration": 0.00013504689559340477, "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.00012762891128659248, "outcome": "passed"}, "call": {"duration": 0.00015335390344262123, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 32, "message": "UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 32, "message": "UnicodeDecodeError"}], "longrepr": "def test_unicode_decode_surrogateescape():\n # UnicodeDecodeError with strict error handler on invalid byte\n> b\"\\x80\".decode(\"utf-8\", errors=\"strict\")\nE UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte\n\ntests/test_string_utils.py:32: UnicodeDecodeError"}, "teardown": {"duration": 0.0001336880959570408, "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.0001194619107991457, "outcome": "passed"}, "call": {"duration": 0.0001617218367755413, "outcome": "passed"}, "teardown": {"duration": 0.00010246597230434418, "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.0001197748351842165, "outcome": "passed"}, "call": {"duration": 0.0006523651536554098, "outcome": "skipped", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 41, "message": "AssertionError: assert 'ABC123' == 'ABC1234'\n \n - ABC1234\n ? -\n + ABC123"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 41, "message": "AssertionError"}], "longrepr": "@pytest.mark.xfail(reason=\"Expected failure: uppercase does not handle digits\")\n def test_xfail_uppercase_digits():\n # Expected fail test because uppercase won't change digits\n> assert uppercase(\"abc123\") == \"ABC1234\"\nE AssertionError: assert 'ABC123' == 'ABC1234'\nE \nE - ABC1234\nE ? -\nE + ABC123\n\ntests/test_string_utils.py:41: AssertionError"}, "teardown": {"duration": 0.00013429392129182816, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_keyboard_interrupt_direct", "lineno": 48, "outcome": "passed", "keywords": ["test_keyboard_interrupt_direct", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011712592095136642, "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}]}
\ No newline at end of file
diff --git a/ci-reports/markdown/runtime_params.json b/ci-reports/markdown/runtime_params.json
index 0637a088..59561bb4 100644
--- a/ci-reports/markdown/runtime_params.json
+++ b/ci-reports/markdown/runtime_params.json
@@ -1 +1,474 @@
-[]
\ No newline at end of file
+[
+ {
+ "nodeid": "tests/test_io_utils.py::test_write_file",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_io_utils.py::test_read_file",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_io_utils.py::test_cause_io_error",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_io_utils.py::test_file_not_found",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_io_utils.py::test_permission_error",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_io_utils.py::test_mock_open_error",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_io_utils.py::test_file_handle_closed_error",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_io_utils.py::test_os_error",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_io_utils.py::test_write_file_in_readonly_mode",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_io_utils.py::test_file_not_found_error",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_broken",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_call_missing_function",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_addition_pass[2-2-4]",
+ "callspec": {
+ "params": {
+ "a": 2,
+ "b": 2,
+ "expected": 4
+ },
+ "id": "2-2-4"
+ }
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_addition_pass[1-5-6]",
+ "callspec": {
+ "params": {
+ "a": 1,
+ "b": 5,
+ "expected": 6
+ },
+ "id": "1-5-6"
+ }
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-7]",
+ "callspec": {
+ "params": {
+ "a": 3,
+ "b": 4,
+ "expected": 7
+ },
+ "id": "3-4-7"
+ }
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_addition_pass[3-5-8]",
+ "callspec": {
+ "params": {
+ "a": 3,
+ "b": 5,
+ "expected": 8
+ },
+ "id": "3-5-8"
+ }
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_addition_pass[3-6-9]",
+ "callspec": {
+ "params": {
+ "a": 3,
+ "b": 6,
+ "expected": 9
+ },
+ "id": "3-6-9"
+ }
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=2,b=2,expected=4]",
+ "callspec": {
+ "params": {
+ "a": 2,
+ "b": 2,
+ "expected": 4
+ },
+ "id": "a=2,b=2,expected=4"
+ }
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=1,b=5,expected=6]",
+ "callspec": {
+ "params": {
+ "a": 1,
+ "b": 5,
+ "expected": 6
+ },
+ "id": "a=1,b=5,expected=6"
+ }
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=3,b=4,expected=7]",
+ "callspec": {
+ "params": {
+ "a": 3,
+ "b": 4,
+ "expected": 7
+ },
+ "id": "a=3,b=4,expected=7"
+ }
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_addition_fail",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_division_zero",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_multiply_xfail",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_runtime_error",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_memory_error",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_timeout_error",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_recursion_error",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_floating_point_error",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_floating_point_overflow",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_value_error",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_wrong_argument_error",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_unhandled_exception",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_custom_error",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_stop_iteration_direct",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_generator_exit_direct",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_malformed_code",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_sys_exit",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_broken_function",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_import_error",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_math_utils.py::test_module_not_found_error",
+ "callspec": null
+ },
+ {
+ "nodeid": "tests/test_param.py::test_basic_ids[one]",
+ "callspec": {
+ "params": {
+ "x": 1
+ },
+ "id": "one"
+ }
+ },
+ {
+ "nodeid": "tests/test_param.py::test_basic_ids[two]",
+ "callspec": {
+ "params": {
+ "x": 2
+ },
+ "id": "two"
+ }
+ },
+ {
+ "nodeid": "tests/test_param.py::test_with_reason_and_marks[ten]",
+ "callspec": {
+ "params": {
+ "x": 10
+ },
+ "id": "ten"
+ }
+ },
+ {
+ "nodeid": "tests/test_param.py::test_multiple_positional_args[1-2]",
+ "callspec": {
+ "params": {
+ "a": 1,
+ "b": 2
+ },
+ "id": "1-2"
+ }
+ },
+ {
+ "nodeid": "tests/test_param.py::test_multiple_positional_args[3-4]",
+ "callspec": {
+ "params": {
+ "a": 3,
+ "b": 4
+ },
+ "id": "3-4"
+ }
+ },
+ {
+ "nodeid": "tests/test_param.py::test_non_literal_with_id[custom-obj]",
+ "callspec": {
+ "params": {
+ "data": "