Skip to content

VariationalRegistration: inherited baselines incompatible with ITK-proper (13 tests disabled pending cross-platform review) #6305

@hjmjohnson

Description

@hjmjohnson

The ingested VariationalRegistration module's CLI-driven registration tests compare produced output against baselines inherited from the archived ITKVariationalRegistration remote module. Those baselines do not match ITK-proper's output and their original source is unrecoverable (the module's ExternalData URLs are dead; Curvature3D is already disabled for the same reason). 13 tests are therefore disabled pending a cross-platform baseline review.

Investigation summary (built & reproduced locally, macOS, ITK PR #6276 branch)
  • Deterministic: each test yields an identical ImageError on every run (e.g. SSD2D=2973, Gaussian3D=23657 across 3 runs) — no threading race.
  • Environment matches CI: ITK_USE_FFTWD=OFF/ITK_USE_FFTWF=OFF (ITK default Pixi); FFTW-dependent elastic/curvature tests are already gated out, so FFTW is not the cause.
  • Not a crash / wrong algorithm: stable accumulated numerical divergence vs the inherited baselines; 3D (94×70×56, 3 levels) diverges more than 2D.
  • Cross-platform hazard: these are floating-point registration outputs — deterministic per platform but not bit-identical across macOS-clang / Linux-gcc / Windows-MSVC. Regenerating baselines from one platform would move the failure to the other CI lanes (the pr-fixture-and-expected-values anti-pattern). Plain comparison tolerance is infeasible (max pixel Δ 7→149, many differing pixels).
Test ImageError Max pixel Δ
Diffusive2D 140 9
SymmetricDemons2D 161 8
SymDiff2D 253 7
PassiveDemons2D 306 17
NCC2D 338 25
SSD3D 722 28
Gaussian2D 2729 50
SSD2D 2973 37
SymDiff3D 4962 36
Diffeomorph3D 13950 122
Diffusive3D 14137 140
Gaussian3D 23657 149
NCC3D 35693 136

(Diffeomorph2D passes and remains enabled. A separate harness bug — a bare trailing -O — was fixed in PR #6276 commit 49b8b83.)

Resolution options for the reviewer
  1. Regenerate baselines from a verified build and validate them across all CI lanes (Linux/Windows/macOS) before publishing to ITKTestingData.
  2. Per-test intensity + pixel-count tolerances sized from cross-platform deltas (only viable for the small-delta subset).
  3. Keep disabled if the upstream algorithm is not intended to be baseline-locked under ITK-proper.

Metadata

Metadata

Assignees

No one assigned

    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