Skip to content

Parity-mode pycurvelets regression tests fail from PR #30 baseline (TMEQ_RUN_CURVELETS=1, TMEQ_VALIDATE_MATLAB=1) #44

@Phil-Dua

Description

@Phil-Dua

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

3.11.14

uv

0.10.3

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

Metadata

Metadata

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions