VV: Read Oxford Instr. EBSD Data (.ctf) fully V&V'ed - #1692
Open
imikejackson wants to merge 1 commit into
Open
Conversation
Summary: - Found and fixed 2 bugs (3D multi-slice .ctf silently truncated to slice 0; float32 Euler conversion drifted 1 ULP from the correctly- rounded double-precision results) and added 6 malformed-input guards (-19600..-19605) replacing 2 demonstrated segfault paths and 1 silent out-of-bounds read; - documented 4 deviations from DREAM3D 6.5.171 (D1 phase-0 remap removed, D2 +30deg on unindexed phi2, D3 malformed-input crashes, D4 3D truncation - retired/fixed); - retired 1 test (legacy-oracle exemplar comparison vs 6_6_read_ctf_data_2.tar.gz, download_test_data entry removed); - unit tests replaced with 12 inlined *Class 1 (Analytical) + Class 4 (Invariant)* test fixtures, including double-precision-pinning Euler angles and a SIMPL 6.4/6.5 backwards-compatibility test; - added 3 V&V source-tree deliverables (report, deviations, provenance); - fixed filter doc errors (phi2 wording, markup) and added 3D, unindexed-point, memory, and migration-note sections; aligned ReadAngData.hpp InputValues to the parameter ValueType alias convention. Signed-off-by: Michael Jackson <mike.jackson@bluequartz.net>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Full V&V of
ReadCtfDataFilterper the v2 MTR V&V policy, structured like the ReadAngDataFilter cycle (#1657). Correctness was established against an independent Class 1 (Analytical) + Class 4 (Invariant) oracle before any legacy comparison; EbsdLib 3.1.0's CtfReader is the trusted Class 2 boundary and is not re-tested..ctffiles were silently truncated to slice 0 (legacy read the full volume — support restored, bit-identical to 6.5.171 on the 3D fixture); Euler +30°/degrees-to-radians math now uses double-precision intermediates (correctly-rounded float32 results, bit-identical to 6.5.171 — 543,950 of 660,000 production-scan Euler values match exactly, the remainder being the documented unindexed-point deviation).-19600…-19605) replace paths where 6.5.171 demonstrably segfaults (missing data column;Phases 0header — both exit 139) or silently emits heap-dependent output (out-of-range phase value).vv/deviations/ReadCtfDataFilter.md) — D1 unindexed points keepPhases == 0(deliberate, PR BUG: ReadCTFData-Remove phase data adjustment. #937), D2 consequent +30° difference on unindexed φ2, D3 malformed-input behavior, D4 3D truncation (fixed/retired). No legacy patch required; every root cause proven from source plus demonstration runs.6_6_read_ctf_data_2.tar.gzare retired; replaced by 12 TEST_CASEs on inline hand-authored fixtures with hand-derived expected values, including Euler angles chosen where float32 and double roundings differ (pins the precision fix), an exact-boundary phase-range value, and a new SIMPL 6.4/6.5 conversion test.vv/ReadCtfDataFilter.md, READY FOR REVIEW), deviations, and provenance sidecar documenting the archive retirement. Filter docs updated (φ2 wording fix, 3D/unindexed/memory/migration sections).ReadAngData.hppaligned to theFileSystemPathParameter::ValueTypealias convention.Test Plan
ctest -R "OrientationAnalysis::ReadCtfDataFilter"— 12/12 pass (in-coresimplnx-Rel)simplnx-ooc-Rel)