Hi team — reporting reproducible parity-mode failures in the pycurvelets MATLAB-to-Python regression tests introduced via [PR #30](#30). These tests were skipped in the PR by default, I was debuggingruff check . for the linting errors. Solved all the errors with 9 skipped tests and 1 warning (numpy core deprecation). I manually ran those 9 tests withTMEQ_RUN_CURVELETS=1 TMEQ_VALIDATE_MATLAB=1 uv run pytest -q -ra --tb=no tests/test_get_ct.py tests/test_process_image.py tests/test_new_curv.py and details are below.
Tagging @don04lee since this appears to originate in the pycurvelets conversion / parity path.
Scope
These are parity-mode tests (normally skipped unless environment flags are enabled):
tests/test_get_ct.py
tests/test_process_image.py
tests/test_new_curv.py
Reproduction
PYTHONPATH=src TMEQ_RUN_CURVELETS=1 TMEQ_VALIDATE_MATLAB=1 \
pytest -q -ra --tb=no \
tests/test_get_ct.py \
tests/test_process_image.py \
tests/test_new_curv.py
Result
17 failed, 12 passed, 14 warnings
The dominant failure pattern is row-count / shape mismatches vs MATLAB reference outputs.
Examples:
density_df length mismatch: 925 vs 622
- Row count mismatch in
process_image feature outputs (e.g. 925 vs 622, 1298 vs 1196)
new_curv center array shape mismatches (e.g. (925, 2) vs (622, 2))
Example failure excerpt
FAILED tests/test_get_ct.py::test_get_ct_matches_expected_results
AssertionError: density_df length mismatch: 925 vs 622
FAILED tests/test_process_image.py::test_process_image_returns_fiber_features[real1_default_no_boundary]
AssertionError: Row count mismatch: 925 vs 622
FAILED tests/test_new_curv.py::test_new_curv_matches_matlab_reference[real1_keep0.05_radius10]
AssertionError:
Not equal to tolerance rtol=0.05, atol=15
Curvelet centers differ from MATLAB reference
(shapes (925, 2), (622, 2) mismatch)
Environment
OS
macOS 15.6.1
Darwin 24.6.0 (arm64)
Python
uv
Key packages
{
"numpy": "2.4.2",
"scipy": "1.17.0",
"pandas": "3.0.0",
"pytest": "9.0.2",
"curvelops": "0.23.4",
"matplotlib": "3.10.8",
"scikit_image": "0.26.0",
"sklearn": "1.8.0"
}
Additional notes
Warnings observed:
DeprecationWarning from curvelops import path (numpy.core.multiarray)
RuntimeWarning: overflow encountered in cast in process_image.py reconstruction save path
Hi team — reporting reproducible parity-mode failures in the
pycurveletsMATLAB-to-Python regression tests introduced via [PR #30](#30). These tests were skipped in the PR by default, I was debuggingruff check .for the linting errors. Solved all the errors with 9 skipped tests and 1 warning (numpy core deprecation). I manually ran those 9 tests withTMEQ_RUN_CURVELETS=1 TMEQ_VALIDATE_MATLAB=1 uv run pytest -q -ra --tb=no tests/test_get_ct.py tests/test_process_image.py tests/test_new_curv.pyand details are below.Tagging @don04lee since this appears to originate in the pycurvelets conversion / parity path.
Scope
These are parity-mode tests (normally skipped unless environment flags are enabled):
tests/test_get_ct.pytests/test_process_image.pytests/test_new_curv.pyReproduction
Result
The dominant failure pattern is row-count / shape mismatches vs MATLAB reference outputs.
Examples:
density_dflength mismatch: 925 vs 622process_imagefeature outputs (e.g. 925 vs 622, 1298 vs 1196)new_curvcenter array shape mismatches (e.g. (925, 2) vs (622, 2))Example failure excerpt
Environment
OS
Python
uv
Key packages
{ "numpy": "2.4.2", "scipy": "1.17.0", "pandas": "3.0.0", "pytest": "9.0.2", "curvelops": "0.23.4", "matplotlib": "3.10.8", "scikit_image": "0.26.0", "sklearn": "1.8.0" }Additional notes
Warnings observed:
DeprecationWarningfrom curvelops import path (numpy.core.multiarray)RuntimeWarning: overflow encountered in castinprocess_image.pyreconstruction save path